Unionfs: add a few more invariant debugging checks
authorErez Zadok <ezk@cs.sunysb.edu>
Thu, 11 Sep 2008 03:41:10 +0000 (23:41 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Fri, 12 Aug 2011 02:38:37 +0000 (22:38 -0400)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/dirfops.c
fs/unionfs/unlink.c

index 14ca7d3aa5d15a50f28f2788477723e0d11bbe11..7c44d098dd5510f6ccd0de95cc0ac0494a940fda 100644 (file)
@@ -187,6 +187,8 @@ static int unionfs_readdir(struct file *file, void *dirent, filldir_t filldir)
        }
 
 out:
+       if (!err)
+               unionfs_check_file(file);
        unionfs_unlock_dentry(dentry);
        unionfs_read_unlock(dentry->d_sb);
        return err;
@@ -270,6 +272,8 @@ static loff_t unionfs_dir_llseek(struct file *file, loff_t offset, int origin)
        }
 
 out:
+       if (!err)
+               unionfs_check_file(file);
        unionfs_unlock_dentry(dentry);
        unionfs_read_unlock(dentry->d_sb);
        return err;
index fb236cdc728b306138255c82d0acac691286e881..d711e9de80d8f108f429bcabf546db5df7334cd0 100644 (file)
@@ -267,6 +267,8 @@ out:
                d_drop(dentry);
                /* update our lower vfsmnts, in case a copyup took place */
                unionfs_postcopyup_setmnt(dentry);
+               unionfs_check_dentry(dentry);
+               unionfs_check_inode(dir);
        }
 
        if (namelist)