Unionfs: minor code cleanups
authorErez Zadok <ezk@cs.sunysb.edu>
Tue, 15 Apr 2008 19:20:03 +0000 (15:20 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Wed, 30 Mar 2011 23:31:33 +0000 (19:31 -0400)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/commonfops.c
fs/unionfs/file.c
fs/unionfs/inode.c

index 50f4eda1ab6c9cfbb2252e086e19fd808c2490bf..0fc79633af16911ee6f9590040e1769f07fe278e 100644 (file)
@@ -250,7 +250,6 @@ static int do_delayed_copyup(struct file *file)
        BUG_ON(!S_ISREG(dentry->d_inode->i_mode));
 
        unionfs_check_file(file);
-       unionfs_check_dentry(dentry);
        for (bindex = bstart - 1; bindex >= 0; bindex--) {
                if (!d_deleted(dentry))
                        err = copyup_file(parent_inode, file, bstart,
@@ -292,7 +291,6 @@ static int do_delayed_copyup(struct file *file)
 
 out:
        unionfs_check_file(file);
-       unionfs_check_dentry(dentry);
        return err;
 }
 
index 0a393876d5c31286da08f07007b22c42b1f8b2da..1fe4c30ac5994e6940c7113d66eaeb84f3c390f3 100644 (file)
@@ -35,14 +35,14 @@ static ssize_t unionfs_read(struct file *file, char __user *buf,
        err = vfs_read(lower_file, buf, count, ppos);
        /* update our inode atime upon a successful lower read */
        if (err >= 0) {
-               fsstack_copy_attr_atime(file->f_path.dentry->d_inode,
+               fsstack_copy_attr_atime(dentry->d_inode,
                                        lower_file->f_path.dentry->d_inode);
                unionfs_check_file(file);
        }
 
 out:
        unionfs_unlock_dentry(dentry);
-       unionfs_read_unlock(file->f_path.dentry->d_sb);
+       unionfs_read_unlock(dentry->d_sb);
        return err;
 }
 
@@ -63,32 +63,25 @@ static ssize_t unionfs_write(struct file *file, const char __user *buf,
        err = vfs_write(lower_file, buf, count, ppos);
        /* update our inode times+sizes upon a successful lower write */
        if (err >= 0) {
-               fsstack_copy_inode_size(file->f_path.dentry->d_inode,
+               fsstack_copy_inode_size(dentry->d_inode,
                                        lower_file->f_path.dentry->d_inode);
-               fsstack_copy_attr_times(file->f_path.dentry->d_inode,
+               fsstack_copy_attr_times(dentry->d_inode,
                                        lower_file->f_path.dentry->d_inode);
                unionfs_check_file(file);
        }
 
 out:
        unionfs_unlock_dentry(dentry);
-       unionfs_read_unlock(file->f_path.dentry->d_sb);
+       unionfs_read_unlock(dentry->d_sb);
        return err;
 }
 
-
 static int unionfs_file_readdir(struct file *file, void *dirent,
                                filldir_t filldir)
 {
        return -ENOTDIR;
 }
 
-int unionfs_readpage_dummy(struct file *file, struct page *page)
-{
-       BUG();
-       return -EINVAL;
-}
-
 static int unionfs_mmap(struct file *file, struct vm_area_struct *vma)
 {
        int err = 0;
index 0dc07eca08e63b21f4a211aa81d6f68629518936..144612406cc5dac61dbe7a35c6c144d0e07f2714 100644 (file)
@@ -396,28 +396,23 @@ docopyup:
                                            bindex, old_dentry->d_name.name,
                                            old_dentry->d_name.len, NULL,
                                            i_size_read(old_dentry->d_inode));
-                       if (!err) {
-                               lower_new_dentry =
-                                       create_parents(dir, new_dentry,
-                                                      new_dentry->d_name.name,
-                                                      bindex);
-                               lower_old_dentry =
-                                       unionfs_lower_dentry(old_dentry);
-                               lower_dir_dentry =
-                                       lock_parent(lower_new_dentry);
-                               /*
-                                * see
-                                * Documentation/filesystems/unionfs/issues.txt
-                                */
-                               lockdep_off();
-                               /* do vfs_link */
-                               err = vfs_link(lower_old_dentry,
-                                              lower_dir_dentry->d_inode,
-                                              lower_new_dentry);
-                               lockdep_on();
-                               unlock_dir(lower_dir_dentry);
-                               goto check_link;
-                       }
+                       if (err)
+                               continue;
+                       lower_new_dentry =
+                               create_parents(dir, new_dentry,
+                                              new_dentry->d_name.name,
+                                              bindex);
+                       lower_old_dentry = unionfs_lower_dentry(old_dentry);
+                       lower_dir_dentry = lock_parent(lower_new_dentry);
+                       /* see Documentation/filesystems/unionfs/issues.txt */
+                       lockdep_off();
+                       /* do vfs_link */
+                       err = vfs_link(lower_old_dentry,
+                                      lower_dir_dentry->d_inode,
+                                      lower_new_dentry);
+                       lockdep_on();
+                       unlock_dir(lower_dir_dentry);
+                       goto check_link;
                }
                goto out;
        }