{
xfs_inode_t *ip, *tip;
struct file *file, *tmp_file;
- int error = 0;
+ int error = 0, fput_needed, fput_needed_tmp;
/* Pull information for the target fd */
- file = fget((int)sxp->sx_fdtarget);
+ file = fget_light((int)sxp->sx_fdtarget, &fput_needed);
if (!file) {
error = XFS_ERROR(EINVAL);
goto out;
goto out_put_file;
}
- tmp_file = fget((int)sxp->sx_fdtmp);
+ tmp_file = fget_light((int)sxp->sx_fdtmp, &fput_needed_tmp);
if (!tmp_file) {
error = XFS_ERROR(EINVAL);
goto out_put_file;
error = xfs_swap_extents(ip, tip, sxp);
out_put_tmp_file:
- fput(tmp_file);
+ fput_light(tmp_file, fput_needed_tmp);
out_put_file:
- fput(file);
+ fput_light(file, fput_needed);
out:
return error;
}