Unionfs: minor cleanup in check_empty
authorErez Zadok <ezk@cs.sunysb.edu>
Thu, 10 Jan 2008 12:05:11 +0000 (07:05 -0500)
committerRachita Kothiyal <rachita@dewey.fsl.cs.sunysb.edu>
Thu, 1 May 2008 23:03:31 +0000 (19:03 -0400)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/dirhelper.c

index 7a56d6ba9a9da6f13bda74101d1ea82ffb52a99b..f0551481fadd2b6b2874fd7264bc57700a2c3ced 100644 (file)
@@ -212,6 +212,7 @@ int check_empty(struct dentry *dentry, struct unionfs_dir_state **namelist)
 {
        int err = 0;
        struct dentry *lower_dentry = NULL;
+       struct vfsmount *mnt;
        struct super_block *sb;
        struct file *lower_file;
        struct unionfs_rdutil_callback *buf = NULL;
@@ -257,15 +258,11 @@ int check_empty(struct dentry *dentry, struct unionfs_dir_state **namelist)
                        continue;
 
                dget(lower_dentry);
-               unionfs_mntget(dentry, bindex);
+               mnt = unionfs_mntget(dentry, bindex);
                branchget(sb, bindex);
-               lower_file =
-                       dentry_open(lower_dentry,
-                                   unionfs_lower_mnt_idx(dentry, bindex),
-                                   O_RDONLY);
+               lower_file = dentry_open(lower_dentry, mnt, O_RDONLY);
                if (IS_ERR(lower_file)) {
                        err = PTR_ERR(lower_file);
-                       dput(lower_dentry);
                        branchput(sb, bindex);
                        goto out;
                }