diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-04-02 20:41:47 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-04-03 17:50:22 -0400 |
commit | 6ec2221c78e08eb039c563af240175648755b1dc (patch) | |
tree | ea1bc99e3456a589f338e68a7aadff0748f0ac36 | |
parent | cfbb45a5c5e6176a63ebf886980f6eaa823eb5d9 (diff) |
Revert "fs/9p: fix dups even in uncached mode"
This reverts commit be57855f505003c5cafff40338d5d0f23b00ba4d.
-rw-r--r-- | fs/9p/vfs_super.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c index 4236058c7bbd..eeac06c2a84c 100644 --- a/fs/9p/vfs_super.c +++ b/fs/9p/vfs_super.c @@ -244,6 +244,21 @@ done: return res; } +static int v9fs_drop_inode(struct inode *inode) +{ + struct v9fs_session_info *v9ses; + + v9ses = v9fs_inode2v9ses(inode); + if (v9ses->cache & (CACHE_META|CACHE_LOOSE)) + return generic_drop_inode(inode); + /* + * in case of non cached mode always drop the + * inode because we want the inode attribute + * to always match that on the server. + */ + return 1; +} + static int v9fs_write_inode(struct inode *inode, struct writeback_control *wbc) { @@ -278,6 +293,7 @@ static const struct super_operations v9fs_super_ops_dotl = { .alloc_inode = v9fs_alloc_inode, .free_inode = v9fs_free_inode, .statfs = v9fs_statfs, + .drop_inode = v9fs_drop_inode, .evict_inode = v9fs_evict_inode, .show_options = v9fs_show_options, .umount_begin = v9fs_umount_begin, |