diff options
author | 2025-06-09 09:09:35 +1000 | |
---|---|---|
committer | 2025-06-11 13:44:15 +0200 | |
commit | 8668a0df07a39b5d78076c4220ca8bedc23464e5 (patch) | |
tree | f18f9b3882f6637cd3b14ed695716f1f7b5c19e0 | |
parent | VFS: Minor fixes for porting.rst (diff) | |
download | wireguard-linux-8668a0df07a39b5d78076c4220ca8bedc23464e5.tar.xz wireguard-linux-8668a0df07a39b5d78076c4220ca8bedc23464e5.zip |
coda: use iterate_dir() in coda_readdir()
The code in coda_readdir() is nearly identical to iterate_dir().
Differences are:
- iterate_dir() is killable
- iterate_dir() adds permission checking and accessing notifications
I believe these are not harmful for coda so it is best to use
iterate_dir() directly. This will allow locking changes without
touching the code in coda.
Signed-off-by: NeilBrown <neil@brown.name>
Link: https://lore.kernel.org/20250608230952.20539-4-neil@brown.name
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r-- | fs/coda/dir.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/fs/coda/dir.c b/fs/coda/dir.c index ab69d8f0cec2..ca9990017265 100644 --- a/fs/coda/dir.c +++ b/fs/coda/dir.c @@ -429,17 +429,9 @@ static int coda_readdir(struct file *coda_file, struct dir_context *ctx) cfi = coda_ftoc(coda_file); host_file = cfi->cfi_container; - if (host_file->f_op->iterate_shared) { - struct inode *host_inode = file_inode(host_file); - ret = -ENOENT; - if (!IS_DEADDIR(host_inode)) { - inode_lock_shared(host_inode); - ret = host_file->f_op->iterate_shared(host_file, ctx); - file_accessed(host_file); - inode_unlock_shared(host_inode); - } + ret = iterate_dir(host_file, ctx); + if (ret != -ENOTDIR) return ret; - } /* Venus: we must read Venus dirents from a file */ return coda_venus_readdir(coda_file, ctx); } |