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);
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);