Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
        struct btrfs_key key;
        u32 nritems;
        int slot;
-       int ret;
+       int ret, fput_needed;
        u64 len = olen;
        u64 bs = root->fs_info->sb->s_blocksize;
        u64 hint_byte;
        if (ret)
                return ret;
 
-       src_file = fget(srcfd);
+       src_file = fget_light(srcfd, &fput_needed);
        if (!src_file) {
                ret = -EBADF;
                goto out_drop_write;
        vfree(buf);
        btrfs_free_path(path);
 out_fput:
-       fput(src_file);
+       fput_light(src_file, fput_needed);
 out_drop_write:
        mnt_drop_write_file(file);
        return ret;