fat: switch to ->iterate_shared()
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 1 May 2016 03:26:25 +0000 (23:26 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 9 May 2016 15:41:15 +0000 (11:41 -0400)
... and make that weird ioctl lock directory only shared.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/fat/dir.c

index d0b95c9..663e428 100644 (file)
@@ -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,