1. 16 8月, 2016 3 次提交
  2. 15 8月, 2016 1 次提交
  3. 13 8月, 2016 1 次提交
    • M
      orangefs: add features op · 482664dd
      Martin Brandenburg 提交于
      This is a new userspace operation, which will be done if the client-core
      version is greater than or equal to 2.9.6. This will provide a way to
      implement optional features and to determine which features are
      supported by the client-core. If the client-core version is older than
      2.9.6, no optional features are supported and the op will not be done.
      
      The intent is to allow protocol extensions without relying on the
      client-core's current behavior of ignoring what it doesn't understand.
      Signed-off-by: NMartin Brandenburg <martin@omnibond.com>
      482664dd
  4. 10 8月, 2016 1 次提交
  5. 03 8月, 2016 2 次提交
  6. 06 7月, 2016 3 次提交
    • 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
    • A
      orangefs: Remove useless xattr prefix arguments · d373a712
      Andreas Gruenbacher 提交于
      Mike,
      
      On Fri, Jun 3, 2016 at 9:44 PM, Mike Marshall <hubcap@omnibond.com> wrote:
      > We use the return value in this one line you changed, our userspace code gets
      > ill when we send it (-ENOMEM +1) as a key length...
      
      ah, my mistake.  Here's a fixed version.
      
      Thanks,
      Andreas
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      d373a712
    • A
      orangefs: Remove useless defines · 972a7344
      Andreas Gruenbacher 提交于
      The ORANGEFS_XATTR_INDEX_ defines are unused; the ORANGEFS_XATTR_NAME_
      defines only obfuscate the code.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      972a7344
  7. 30 5月, 2016 1 次提交
  8. 03 5月, 2016 1 次提交
  9. 26 3月, 2016 2 次提交
  10. 24 3月, 2016 5 次提交
  11. 10 3月, 2016 1 次提交
  12. 26 2月, 2016 2 次提交
    • A
      orangefs: remove unused 'diff' function · 401898ee
      Arnd Bergmann 提交于
      orangefs contains a helper function to calculate the difference
      between two timeval structures. We are trying to remove all
      instances of timespec from the kernel, and this one is not
      used at all, so let's remove it now.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      401898ee
    • A
      orangefs: avoid time conversion function · be81ce48
      Arnd Bergmann 提交于
      The new orangefs code uses a helper function to read a time field to
      its private structures from struct iattr. This will conflict with the
      move to 64-bit timestamps in the kernel and is generally not necessary.
      
      This replaces the conversion with a simple cast to time64_t that shows
      what is going on. As the orangefs-internal representation already uses
      64-bit timestamps, there should be no ambiguity to negative values,
      and the cast ensures that we treat them as times before 1970 on both
      32-bit and 64-bit architectures, rather than times after 2038. This
      patch keeps that behavior.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      be81ce48
  13. 25 2月, 2016 4 次提交
  14. 20 2月, 2016 6 次提交
  15. 05 2月, 2016 2 次提交
  16. 29 1月, 2016 1 次提交
    • M
      orangefs: Fix revalidate. · 99109822
      Martin Brandenburg 提交于
      Previously, it would update a live inode. This was fixed, but it did not
      ever check that the inode attributes in the dcache are correct. This
      checks all inode attributes and rejects any that are not correct, which
      causes a lookup and thus a new getattr.
      
      Perhaps inode_operations->permission should replace or augment some of
      this.
      
      There is no actual caching, and this does a rather excessive amount of
      network operations back to the filesystem server.
      Signed-off-by: NMartin Brandenburg <martin@omnibond.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      99109822
  17. 24 1月, 2016 4 次提交