fuse: move fuse_invalidate_attr() into fuse_update_ctime()
authorMiklos Szeredi <mszeredi@redhat.com>
Fri, 22 Oct 2021 15:03:01 +0000 (17:03 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Fri, 22 Oct 2021 15:03:01 +0000 (17:03 +0200)
Logically it belongs there since attributes are invalidated due to the
updated ctime.  This is a cleanup and should not change behavior.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/dir.c
fs/fuse/xattr.c

index 80a2181..1b345ab 100644 (file)
@@ -747,6 +747,7 @@ void fuse_flush_time_update(struct inode *inode)
 
 void fuse_update_ctime(struct inode *inode)
 {
+       fuse_invalidate_attr(inode);
        if (!IS_NOCMTIME(inode)) {
                inode->i_ctime = current_time(inode);
                mark_inode_dirty_sync(inode);
@@ -784,7 +785,6 @@ static int fuse_unlink(struct inode *dir, struct dentry *entry)
                if (inode->i_nlink > 0)
                        drop_nlink(inode);
                spin_unlock(&fi->lock);
-               fuse_invalidate_attr(inode);
                fuse_dir_changed(dir);
                fuse_invalidate_entry_cache(entry);
                fuse_update_ctime(inode);
@@ -841,13 +841,10 @@ static int fuse_rename_common(struct inode *olddir, struct dentry *oldent,
        err = fuse_simple_request(fm, &args);
        if (!err) {
                /* ctime changes */
-               fuse_invalidate_attr(d_inode(oldent));
                fuse_update_ctime(d_inode(oldent));
 
-               if (flags & RENAME_EXCHANGE) {
-                       fuse_invalidate_attr(d_inode(newent));
+               if (flags & RENAME_EXCHANGE)
                        fuse_update_ctime(d_inode(newent));
-               }
 
                fuse_dir_changed(olddir);
                if (olddir != newdir)
@@ -855,7 +852,6 @@ static int fuse_rename_common(struct inode *olddir, struct dentry *oldent,
 
                /* newent will end up negative */
                if (!(flags & RENAME_EXCHANGE) && d_really_is_positive(newent)) {
-                       fuse_invalidate_attr(d_inode(newent));
                        fuse_invalidate_entry_cache(newent);
                        fuse_update_ctime(d_inode(newent));
                }
@@ -938,7 +934,6 @@ static int fuse_link(struct dentry *entry, struct inode *newdir,
                if (likely(inode->i_nlink < UINT_MAX))
                        inc_nlink(inode);
                spin_unlock(&fi->lock);
-               fuse_invalidate_attr(inode);
                fuse_update_ctime(inode);
        } else if (err == -EINTR) {
                fuse_invalidate_attr(inode);
index 61dfaf7..0d3e717 100644 (file)
@@ -42,10 +42,9 @@ int fuse_setxattr(struct inode *inode, const char *name, const void *value,
                fm->fc->no_setxattr = 1;
                err = -EOPNOTSUPP;
        }
-       if (!err) {
-               fuse_invalidate_attr(inode);
+       if (!err)
                fuse_update_ctime(inode);
-       }
+
        return err;
 }
 
@@ -173,10 +172,9 @@ int fuse_removexattr(struct inode *inode, const char *name)
                fm->fc->no_removexattr = 1;
                err = -EOPNOTSUPP;
        }
-       if (!err) {
-               fuse_invalidate_attr(inode);
+       if (!err)
                fuse_update_ctime(inode);
-       }
+
        return err;
 }