Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98d4b8d8 authored by Al Viro's avatar Al Viro
Browse files

fat: switch to ->iterate_shared()



... and make that weird ioctl lock directory only shared.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d375570f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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,