commit 24d75f2238f7539421473c94f4b8aaa8f01af9b7
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Tue Jan 1 22:02:28 2008 -0500

    Unionfs: use VFS helpers to manipulate i_nlink
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

diff --git a/fs/unionfs/compat.h b/fs/unionfs/compat.h
index 71ebb81..3d93798 100644
--- a/fs/unionfs/compat.h
+++ b/fs/unionfs/compat.h
@@ -94,4 +94,14 @@ static inline loff_t page_offset(struct page *page)
        return ((loff_t)page->index) << PAGE_CACHE_SHIFT;
 }
 
+/* from include/linux/fs.h on 2.6.18+ */
+static inline void drop_nlink(struct inode *inode)
+{
+       inode->i_nlink--;
+}
+static inline void inode_dec_link_count(struct inode *inode)
+{
+       drop_nlink(inode);
+       mark_inode_dirty(inode);
+}
 #endif /* _UNIONFS_COMPAT_H_ */
diff --git a/fs/unionfs/unlink.c b/fs/unionfs/unlink.c
index a1c82b6..1e370a1 100644
--- a/fs/unionfs/unlink.c
+++ b/fs/unionfs/unlink.c
@@ -79,7 +79,7 @@ static int unionfs_unlink_whiteout(struct inode *dir, struct 
dentry *dentry)
 
 out:
        if (!err)
-               dentry->d_inode->i_nlink--;
+               inode_dec_link_count(dentry->d_inode);
 
        /* We don't want to leave negative leftover dentries for revalidate. */
        if (!err && (dbopaque(dentry) != -1))
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to