diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-04-30 23:26:25 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-09 11:41:15 -0400 |
commit | 98d4b8d8f07128c127f767c0a8726db948b28e96 (patch) | |
tree | dfc57c0e7af5358948f4f59d71c8dbe1fe786e7e /fs/fat | |
parent | d375570fa83761161bb3d9120e0260dec66f051d (diff) | |
download | lwn-98d4b8d8f07128c127f767c0a8726db948b28e96.tar.gz lwn-98d4b8d8f07128c127f767c0a8726db948b28e96.zip |
fat: switch to ->iterate_shared()
... and make that weird ioctl lock directory only shared.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fat')
-rw-r--r-- | fs/fat/dir.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/fat/dir.c b/fs/fat/dir.c index d0b95c95079b..663e428596c6 100644 --- a/fs/fat/dir.c +++ b/fs/fat/dir.c @@ -769,7 +769,7 @@ static int fat_ioctl_readdir(struct inode *inode, struct file *file, buf.dirent = dirent; buf.result = 0; - inode_lock(inode); + inode_lock_shared(inode); buf.ctx.pos = file->f_pos; ret = -ENOENT; if (!IS_DEADDIR(inode)) { @@ -777,7 +777,7 @@ static int fat_ioctl_readdir(struct inode *inode, struct file *file, short_only, both ? &buf : NULL); file->f_pos = buf.ctx.pos; } - inode_unlock(inode); + inode_unlock_shared(inode); if (ret >= 0) ret = buf.result; return ret; @@ -861,7 +861,7 @@ static long fat_compat_dir_ioctl(struct file *filp, unsigned cmd, const struct file_operations fat_dir_operations = { .llseek = generic_file_llseek, .read = generic_read_dir, - .iterate = fat_readdir, + .iterate_shared = fat_readdir, .unlocked_ioctl = fat_dir_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = fat_compat_dir_ioctl, |