|
@@ -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,
|