net: Clone skb before setting peeked flag
[firefly-linux-kernel-4.4.55.git] / fs / fhandle.c
index cccdc874bb55df99eb10f89f33a7bcb1f92ddc99..d59712dfa3e701e86ff53609308e813cf8acf69e 100644 (file)
@@ -52,7 +52,7 @@ static long do_sys_name_to_handle(struct path *path,
        handle_bytes = handle_dwords * sizeof(u32);
        handle->handle_bytes = handle_bytes;
        if ((handle->handle_bytes > f_handle.handle_bytes) ||
-           (retval == 255) || (retval == -ENOSPC)) {
+           (retval == FILEID_INVALID) || (retval == -ENOSPC)) {
                /* As per old exportfs_encode_fh documentation
                 * we could return ENOSPC to indicate overflow
                 * But file system returned 255 always. So handle
@@ -195,8 +195,9 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
                goto out_err;
        }
        /* copy the full handle */
-       if (copy_from_user(handle, ufh,
-                          sizeof(struct file_handle) +
+       *handle = f_handle;
+       if (copy_from_user(&handle->f_handle,
+                          &ufh->f_handle,
                           f_handle.handle_bytes)) {
                retval = -EFAULT;
                goto out_handle;