1. 06 7月, 2016 1 次提交
    • J
      orangefs: fix namespace handling · 78fee0b6
      Jann Horn 提交于
      In orangefs_inode_getxattr(), an fsuid is written to dmesg. The kuid is
      converted to a userspace uid via from_kuid(current_user_ns(), [...]), but
      since dmesg is global, init_user_ns should be used here instead.
      
      In copy_attributes_from_inode(), op_alloc() and fill_default_sys_attrs(),
      upcall structures are populated with uids/gids that have been mapped into
      the caller's namespace. However, those upcall structures are read by
      another process (the userspace filesystem driver), and that process might
      be running in another namespace. This effectively lets any user spoof its
      uid and gid as seen by the userspace filesystem driver.
      
      To fix the second issue, I just construct the opcall structures with
      init_user_ns uids/gids and require the filesystem server to run in the
      init namespace. Since orangefs is full of global state anyway (as the error
      message in DUMP_DEVICE_ERROR explains, there can only be one userspace
      orangefs filesystem driver at once), that shouldn't be a problem.
      
      [
      Why does orangefs even exist in the kernel if everything does upcalls into
      userspace? What does orangefs do that couldn't be done with the FUSE
      interface? If there is no good answer to those questions, I'd prefer to see
      orangefs kicked out of the kernel. Can that be done for something that
      shipped in a release?
      
      According to commit f7ab093f ("Orangefs: kernel client part 1"), they
      even already have a FUSE daemon, and the only rational reason (apart from
      "but most of our users report preferring to use our kernel module instead")
      given for not wanting to use FUSE is one "in-the-works" feature that could
      probably be integated into FUSE instead.
      ]
      
      This patch has been compile-tested.
      Signed-off-by: NJann Horn <jannh@google.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      78fee0b6
  2. 20 2月, 2016 4 次提交
  3. 05 2月, 2016 1 次提交
    • M
      Orangefs: clean up slab allocation. · 2d4cae0d
      Mike Marshall 提交于
      A couple of caches were no longer needed:
      
       - iov_iter improvements to orangefs_devreq_write_iter eliminated
         the need for the dev_req_cache.
      
       - removal (months ago) of the old AIO code eliminated the need
         for the kiocb_cache.
      
      Also, deobfuscation of use of GFP_KERNEL when calling kmem_cache_(z)alloc
      for remaining caches.
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      2d4cae0d
  4. 24 1月, 2016 3 次提交
  5. 14 1月, 2016 1 次提交
  6. 18 12月, 2015 1 次提交
  7. 05 12月, 2015 1 次提交
  8. 04 12月, 2015 1 次提交
  9. 14 11月, 2015 1 次提交
  10. 03 10月, 2015 1 次提交