From: Erez Zadok Date: Thu, 3 Apr 2008 17:15:59 +0000 (-0400) Subject: Unionfs: copy lower times in fsync/fasync only when needed X-Git-Url: https://git.fsl.cs.sunysb.edu/?a=commitdiff_plain;h=b263fc9334c5b28a1745c086aad7f774feb66087;p=unionfs-3.14.y.git Unionfs: copy lower times in fsync/fasync only when needed Signed-off-by: Erez Zadok --- diff --git a/fs/unionfs/file.c b/fs/unionfs/file.c index 1fe4c30ac599..f14b38bb15e7 100644 --- a/fs/unionfs/file.c +++ b/fs/unionfs/file.c @@ -196,13 +196,13 @@ int unionfs_fsync(struct file *file, struct dentry *dentry, int datasync) err = lower_inode->i_fop->fsync(lower_file, lower_dentry, datasync); + if (!err && bindex == bstart) + fsstack_copy_attr_times(inode, lower_inode); mutex_unlock(&lower_inode->i_mutex); if (err) goto out; } - unionfs_copy_attr_times(inode); - out: if (!err) unionfs_check_file(file); @@ -244,13 +244,13 @@ int unionfs_fasync(int fd, struct file *file, int flag) lower_file = unionfs_lower_file_idx(file, bindex); mutex_lock(&lower_inode->i_mutex); err = lower_inode->i_fop->fasync(fd, lower_file, flag); + if (!err && bindex == bstart) + fsstack_copy_attr_times(inode, lower_inode); mutex_unlock(&lower_inode->i_mutex); if (err) goto out; } - unionfs_copy_attr_times(inode); - out: if (!err) unionfs_check_file(file);