Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
case EXT4_IOC_MOVE_EXT: {
struct move_extent me;
struct file *donor_filp;
- int err;
+ int err, fput_needed;
if (!(filp->f_mode & FMODE_READ) ||
!(filp->f_mode & FMODE_WRITE))
return -EFAULT;
me.moved_len = 0;
- donor_filp = fget(me.donor_fd);
+ donor_filp = fget_light(me.donor_fd, &fput_needed);
if (!donor_filp)
return -EBADF;
&me, sizeof(me)))
err = -EFAULT;
mext_out:
- fput(donor_filp);
+ fput_light(donor_filp, fput_needed);
return err;
}