]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge tag 'v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux...
authorMike Marshall <hubcap@omnibond.com>
Sat, 25 Feb 2017 16:12:48 +0000 (11:12 -0500)
committerMike Marshall <hubcap@omnibond.com>
Sat, 25 Feb 2017 16:12:48 +0000 (11:12 -0500)
Linux 4.10

1  2 
fs/orangefs/devorangefs-req.c
fs/orangefs/inode.c
fs/orangefs/orangefs-debugfs.c

index f419dd999581e976fb51a5987211de6bbe87f9e6,b0ced669427e154cc67c7b4b4f9e4630f934919f..c4ab6fdf17a01426db5d6e2bb9638130147bee61
@@@ -355,7 -355,6 +355,6 @@@ static ssize_t orangefs_devreq_write_it
                __u64 tag;
        } head;
        int total = ret = iov_iter_count(iter);
-       int n;
        int downcall_size = sizeof(struct orangefs_downcall_s);
        int head_size = sizeof(head);
  
                return -EFAULT;
        }
       
-       n = copy_from_iter(&head, head_size, iter);
-       if (n < head_size) {
+       if (!copy_from_iter_full(&head, head_size, iter)) {
                gossip_err("%s: failed to copy head.\n", __func__);
                return -EFAULT;
        }
        /* remove the op from the in progress hash table */
        op = orangefs_devreq_remove_op(head.tag);
        if (!op) {
 -              gossip_err("WARNING: No one's waiting for tag %llu\n",
 -                         llu(head.tag));
 +              gossip_debug(GOSSIP_DEV_DEBUG,
 +                           "%s: No one's waiting for tag %llu\n",
 +                           __func__, llu(head.tag));
                return ret;
        }
  
-       n = copy_from_iter(&op->downcall, downcall_size, iter);
-       if (n != downcall_size) {
+       if (!copy_from_iter_full(&op->downcall, downcall_size, iter)) {
                gossip_err("%s: failed to copy downcall.\n", __func__);
                goto Efault;
        }
                goto Enomem;
        }
        memset(op->downcall.trailer_buf, 0, op->downcall.trailer_size);
-       n = copy_from_iter(op->downcall.trailer_buf,
-                          op->downcall.trailer_size,
-                          iter);
-       if (n != op->downcall.trailer_size) {
+       if (!copy_from_iter_full(op->downcall.trailer_buf,
+                                op->downcall.trailer_size, iter)) {
                gossip_err("%s: failed to copy trailer.\n", __func__);
                vfree(op->downcall.trailer_buf);
                goto Efault;
diff --combined fs/orangefs/inode.c
index 462d10933e48b163bdbede6aa0c37a9cdd1ab03a,551bc74ed2b822fe0f211d90527397da2d86bb38..5cd617980fbfa2a38d8d08ac4017bae67679bd16
@@@ -8,6 -8,7 +8,7 @@@
   *  Linux VFS inode operations.
   */
  
+ #include <linux/bvec.h>
  #include "protocol.h"
  #include "orangefs-kernel.h"
  #include "orangefs-bufmap.h"
@@@ -135,6 -136,12 +136,6 @@@ static ssize_t orangefs_direct_IO(struc
        return -EINVAL;
  }
  
 -struct backing_dev_info orangefs_backing_dev_info = {
 -      .name = "orangefs",
 -      .ra_pages = 0,
 -      .capabilities = BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_WRITEBACK,
 -};
 -
  /** ORANGEFS2 implementation of address space operations */
  const struct address_space_operations orangefs_address_operations = {
        .readpage = orangefs_readpage,
index 0748a26598fca1e39379c1104061392e96592b2b,27e75cf28b3a0c386c645bf714975c4772e14866..791912da97d7487d99c618ce8ac6f5fbe3cd11fb
@@@ -434,6 -434,7 +434,7 @@@ static ssize_t orangefs_debug_write(str
        char *debug_string;
        struct orangefs_kernel_op_s *new_op = NULL;
        struct client_debug_mask c_mask = { NULL, 0, 0 };
+       char *s;
  
        gossip_debug(GOSSIP_DEBUGFS_DEBUG,
                "orangefs_debug_write: %pD\n",
        }
  
        mutex_lock(&orangefs_debug_lock);
-       memset(file->f_inode->i_private, 0, ORANGEFS_MAX_DEBUG_STRING_LEN);
-       sprintf((char *)file->f_inode->i_private, "%s\n", debug_string);
+       s = file_inode(file)->i_private;
+       memset(s, 0, ORANGEFS_MAX_DEBUG_STRING_LEN);
+       sprintf(s, "%s\n", debug_string);
        mutex_unlock(&orangefs_debug_lock);
  
        *ppos += count;
@@@ -965,13 -967,13 +967,13 @@@ int orangefs_debugfs_new_client_string(
        int ret;
  
        ret = copy_from_user(&client_debug_array_string,
 -                                     (void __user *)arg,
 -                                     ORANGEFS_MAX_DEBUG_STRING_LEN);
 +                           (void __user *)arg,
 +                           ORANGEFS_MAX_DEBUG_STRING_LEN);
  
        if (ret != 0) {
                pr_info("%s: CLIENT_STRING: copy_from_user failed\n",
                        __func__);
 -              return -EIO;
 +              return -EFAULT;
        }
  
        /*
         */
        client_debug_array_string[ORANGEFS_MAX_DEBUG_STRING_LEN - 1] =
                '\0';
 -      
 +
        pr_info("%s: client debug array string has been received.\n",
                __func__);
  
        if (!help_string_initialized) {
  
                /* Build a proper debug help string. */
 -              if (orangefs_prepare_debugfs_help_string(0)) {
 +              ret = orangefs_prepare_debugfs_help_string(0);
 +              if (ret) {
                        gossip_err("%s: no debug help string \n",
                                   __func__);
 -                      return -EIO;
 +                      return ret;
                }
  
        }
  
        help_string_initialized++;
  
 -      return ret;
 +      return 0;
  }
  
  int orangefs_debugfs_new_debug(void __user *arg)