From: Erez Zadok Date: Tue, 15 Apr 2008 19:20:03 +0000 (-0400) Subject: Unionfs: minor code cleanups X-Git-Tag: master_base~91 X-Git-Url: https://git.fsl.cs.sunysb.edu/?a=commitdiff_plain;h=d4080e4e1380350692bbeb0785ed492e2db9ea91;p=unionfs-2.6.39.y.git Unionfs: minor code cleanups Signed-off-by: Erez Zadok --- diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c index 50f4eda1ab6..0fc79633af1 100644 --- a/fs/unionfs/commonfops.c +++ b/fs/unionfs/commonfops.c @@ -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; } diff --git a/fs/unionfs/file.c b/fs/unionfs/file.c index 0a393876d5c..1fe4c30ac59 100644 --- a/fs/unionfs/file.c +++ b/fs/unionfs/file.c @@ -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; diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c index 0dc07eca08e..144612406cc 100644 --- a/fs/unionfs/inode.c +++ b/fs/unionfs/inode.c @@ -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; }