1. 02 5月, 2012 3 次提交
  2. 28 4月, 2012 1 次提交
    • F
      NFS: create struct nfs_commit_info · ea2cf228
      Fred Isaman 提交于
      It is COMMIT that is handled the most differently between
      the paged and direct paths.  Create a structure that encapsulates
      everything either path needs to know about the commit state.
      
      We could use void to hide some of the layout driver stuff, but
      Trond suggests pulling it out to ensure type checking, given the
      huge changes being made, and the fact that it doesn't interfere
      with other drivers.
      Signed-off-by: NFred Isaman <iisaman@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      ea2cf228
  3. 29 3月, 2012 1 次提交
  4. 21 3月, 2012 1 次提交
  5. 11 3月, 2012 1 次提交
  6. 07 3月, 2012 2 次提交
  7. 06 3月, 2012 1 次提交
  8. 03 3月, 2012 1 次提交
  9. 07 2月, 2012 3 次提交
  10. 01 2月, 2012 4 次提交
  11. 13 1月, 2012 1 次提交
  12. 08 1月, 2012 1 次提交
    • T
      NFSv4: Save the owner/group name string when doing open · 6926afd1
      Trond Myklebust 提交于
      ...so that we can do the uid/gid mapping outside the asynchronous RPC
      context.
      This fixes a bug in the current NFSv4 atomic open code where the client
      isn't able to determine what the true uid/gid fields of the file are,
      (because the asynchronous nature of the OPEN call denies it the ability
      to do an upcall) and so fills them with default values, marking the
      inode as needing revalidation.
      Unfortunately, in some cases, the VFS will do some additional sanity
      checks on the file, and may override the server's decision to allow
      the open because it sees the wrong owner/group fields.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      6926afd1
  13. 04 1月, 2012 2 次提交
  14. 07 12月, 2011 1 次提交
  15. 05 11月, 2011 1 次提交
    • J
      nfs: when attempting to open a directory, fall back on normal lookup (try #5) · 1788ea6e
      Jeff Layton 提交于
      commit d953126a changed how nfs_atomic_lookup handles an -EISDIR return
      from an OPEN call. Prior to that patch, that caused the client to fall
      back to doing a normal lookup. When that patch went in, the code began
      returning that error to userspace. The d_revalidate codepath however
      never had the corresponding change, so it was still possible to end up
      with a NULL ctx->state pointer after that.
      
      That patch caused a regression. When we attempt to open a directory that
      does not have a cached dentry, that open now errors out with EISDIR. If
      you attempt the same open with a cached dentry, it will succeed.
      
      Fix this by reverting the change in nfs_atomic_lookup and allowing
      attempts to open directories to fall back to a normal lookup
      
      Also, add a NFSv4-specific f_ops->open routine that just returns
      -ENOTDIR. This should never be called if things are working properly,
      but if it ever is, then the dprintk may help in debugging.
      
      To facilitate this, a new file_operations field is also added to the
      nfs_rpc_ops struct.
      
      Cc: stable@kernel.org
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      1788ea6e
  16. 02 11月, 2011 2 次提交
  17. 19 10月, 2011 1 次提交
  18. 20 7月, 2011 1 次提交
  19. 15 6月, 2011 2 次提交
  20. 30 5月, 2011 1 次提交
  21. 28 5月, 2011 1 次提交
  22. 25 3月, 2011 1 次提交
  23. 24 3月, 2011 2 次提交
  24. 11 3月, 2011 1 次提交
  25. 26 1月, 2011 1 次提交
  26. 25 1月, 2011 1 次提交
  27. 16 1月, 2011 1 次提交
  28. 07 1月, 2011 1 次提交
    • N
      fs: icache RCU free inodes · fa0d7e3d
      Nick Piggin 提交于
      RCU free the struct inode. This will allow:
      
      - Subsequent store-free path walking patch. The inode must be consulted for
        permissions when walking, so an RCU inode reference is a must.
      - sb_inode_list_lock to be moved inside i_lock because sb list walkers who want
        to take i_lock no longer need to take sb_inode_list_lock to walk the list in
        the first place. This will simplify and optimize locking.
      - Could remove some nested trylock loops in dcache code
      - Could potentially simplify things a bit in VM land. Do not need to take the
        page lock to follow page->mapping.
      
      The downsides of this is the performance cost of using RCU. In a simple
      creat/unlink microbenchmark, performance drops by about 10% due to inability to
      reuse cache-hot slab objects. As iterations increase and RCU freeing starts
      kicking over, this increases to about 20%.
      
      In cases where inode lifetimes are longer (ie. many inodes may be allocated
      during the average life span of a single inode), a lot of this cache reuse is
      not applicable, so the regression caused by this patch is smaller.
      
      The cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,
      however this adds some complexity to list walking and store-free path walking,
      so I prefer to implement this at a later date, if it is shown to be a win in
      real situations. I haven't found a regression in any non-micro benchmark so I
      doubt it will be a problem.
      Signed-off-by: NNick Piggin <npiggin@kernel.dk>
      fa0d7e3d