]> Git Repo - J-linux.git/commitdiff
Merge tag 'for-linus-5.3-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubca...
authorLinus Torvalds <[email protected]>
Tue, 16 Jul 2019 22:15:29 +0000 (15:15 -0700)
committerLinus Torvalds <[email protected]>
Tue, 16 Jul 2019 22:15:29 +0000 (15:15 -0700)
Pull orangefs updates from Mike Marshall:
 "Two small fixes.

  This is just a fix for an unused value that Colin King sent me and a
  related fix I added"

* tag 'for-linus-5.3-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
  orangefs: eliminate needless variable assignments
  orangefs: remove redundant assignment to variable buffer_index

1  2 
fs/orangefs/file.c

diff --combined fs/orangefs/file.c
index 679a3c8e4fb39924dae0a1e2f37d4e1c971df810,86f63e014ffbd53f5c98c2ec92e85e515d9639de..960f9a3c012dd83e497b31fa1d2ef355cdd771b6
@@@ -52,7 -52,7 +52,7 @@@ ssize_t wait_for_direct_io(enum ORANGEF
        struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
        struct orangefs_khandle *handle = &orangefs_inode->refn.khandle;
        struct orangefs_kernel_op_s *new_op = NULL;
-       int buffer_index = -1;
+       int buffer_index;
        ssize_t ret;
        size_t copy_amount;
  
@@@ -134,7 -134,6 +134,6 @@@ populate_shared_memory
         */
        if (ret == -EAGAIN && op_state_purged(new_op)) {
                orangefs_bufmap_put(buffer_index);
-               buffer_index = -1;
                if (type == ORANGEFS_IO_WRITE)
                        iov_iter_revert(iter, total_size);
                gossip_debug(GOSSIP_FILE_DEBUG,
@@@ -262,7 -261,6 +261,6 @@@ out
                                "%s(%pU): PUT buffer_index %d\n",
                                __func__, handle, buffer_index);
                }
-               buffer_index = -1;
        }
        op_release(new_op);
        return ret;
@@@ -357,28 -355,11 +355,28 @@@ static ssize_t orangefs_file_write_iter
        return ret;
  }
  
 +static int orangefs_getflags(struct inode *inode, unsigned long *uval)
 +{
 +      __u64 val = 0;
 +      int ret;
 +
 +      ret = orangefs_inode_getxattr(inode,
 +                                    "user.pvfs2.meta_hint",
 +                                    &val, sizeof(val));
 +      if (ret < 0 && ret != -ENODATA)
 +              return ret;
 +      else if (ret == -ENODATA)
 +              val = 0;
 +      *uval = val;
 +      return 0;
 +}
 +
  /*
   * Perform a miscellaneous operation on a file.
   */
  static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
  {
 +      struct inode *inode = file_inode(file);
        int ret = -ENOTTY;
        __u64 val = 0;
        unsigned long uval;
         * and append flags
         */
        if (cmd == FS_IOC_GETFLAGS) {
 -              val = 0;
 -              ret = orangefs_inode_getxattr(file_inode(file),
 -                                            "user.pvfs2.meta_hint",
 -                                            &val, sizeof(val));
 -              if (ret < 0 && ret != -ENODATA)
 +              ret = orangefs_getflags(inode, &uval);
 +              if (ret)
                        return ret;
 -              else if (ret == -ENODATA)
 -                      val = 0;
 -              uval = val;
                gossip_debug(GOSSIP_FILE_DEBUG,
                             "orangefs_ioctl: FS_IOC_GETFLAGS: %llu\n",
                             (unsigned long long)uval);
                return put_user(uval, (int __user *)arg);
        } else if (cmd == FS_IOC_SETFLAGS) {
 +              unsigned long old_uval;
 +
                ret = 0;
                if (get_user(uval, (int __user *)arg))
                        return -EFAULT;
                        gossip_err("orangefs_ioctl: the FS_IOC_SETFLAGS only supports setting one of FS_IMMUTABLE_FL|FS_APPEND_FL|FS_NOATIME_FL\n");
                        return -EINVAL;
                }
 +              ret = orangefs_getflags(inode, &old_uval);
 +              if (ret)
 +                      return ret;
 +              ret = vfs_ioc_setflags_prepare(inode, old_uval, uval);
 +              if (ret)
 +                      return ret;
                val = uval;
                gossip_debug(GOSSIP_FILE_DEBUG,
                             "orangefs_ioctl: FS_IOC_SETFLAGS: %llu\n",
                             (unsigned long long)val);
 -              ret = orangefs_inode_setxattr(file_inode(file),
 +              ret = orangefs_inode_setxattr(inode,
                                              "user.pvfs2.meta_hint",
                                              &val, sizeof(val), 0);
        }
This page took 0.048591 seconds and 4 git commands to generate.