summaryrefslogtreecommitdiffstats
path: root/fs/fs.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-10-02 12:07:22 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2018-10-08 08:36:58 +0200
commit35197571a859dc268671341530c4e8606cebf901 (patch)
treeb48da536610cf7806e5392b49ef402932a011bc5 /fs/fs.c
parent22d8660e7b77250a12ecf76dc4f20588e3f9257e (diff)
downloadbarebox-35197571a859dc268671341530c4e8606cebf901.tar.gz
barebox-35197571a859dc268671341530c4e8606cebf901.tar.xz
fs: implement clear_nlink and set_nlink
Implement clear_nlink and set_nlink and remove the private versions from UBIFS. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs/fs.c')
-rw-r--r--fs/fs.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/fs.c b/fs/fs.c
index 12851b7ae3..d76d829140 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -1017,6 +1017,22 @@ void inc_nlink(struct inode *inode)
inode->__i_nlink++;
}
+void clear_nlink(struct inode *inode)
+{
+ if (inode->i_nlink) {
+ inode->__i_nlink = 0;
+ }
+}
+
+void set_nlink(struct inode *inode, unsigned int nlink)
+{
+ if (!nlink) {
+ clear_nlink(inode);
+ } else {
+ inode->__i_nlink = nlink;
+ }
+}
+
static struct inode *alloc_inode(struct super_block *sb)
{
static const struct inode_operations empty_iops;