1. 21 3月, 2012 3 次提交
  2. 07 12月, 2011 1 次提交
  3. 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
  4. 01 8月, 2011 1 次提交
  5. 25 3月, 2011 1 次提交
  6. 12 3月, 2011 1 次提交
  7. 24 10月, 2010 1 次提交
  8. 22 9月, 2010 1 次提交
  9. 18 9月, 2010 3 次提交
  10. 17 9月, 2010 1 次提交
  11. 15 5月, 2010 8 次提交
  12. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  13. 10 2月, 2010 1 次提交
  14. 24 9月, 2009 1 次提交
  15. 09 9月, 2009 1 次提交
  16. 01 4月, 2009 1 次提交
  17. 20 3月, 2009 1 次提交
    • T
      NFS: Optimise NFS close() · 7fe5c398
      Trond Myklebust 提交于
      Close-to-open cache consistency rules really only require us to flush out
      writes on calls to close(), and require us to revalidate attributes on the
      very last close of the file.
      
      Currently we appear to be doing a lot of extra attribute revalidation
      and cache flushes.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      7fe5c398
  18. 08 10月, 2008 1 次提交
    • E
      nfs: authenticated deep mounting · 37ca8f5c
      EG Keizer 提交于
      Allow mount to do authenticated mounts below the root of the exported tree.
      The wording in RFC 2623, sec 2.3.2. allows fsinfo with UNIX authentication
      on the root of the export. Mounts are not always done on the root
      of the exported tree. Especially autoumounts often mount below the root of
      the exported tree.
      Some server implementations (justly) require full authentication for the
      so-called deep mounts. The old code used AUTH_SYS only. This caused deep
      mounts to fail on systems requiring stronger authentication..
      The client should try both authentication types and use the first one that
      succeeds.
      This method was already partially implemented. This patch completes
      the implementation for NFS2 and NFS3.
      This patch was developed to allow Debian systems to automount home directories
      on Solaris servers with krb5 authentication.
      
      Tested on kernel 2.6.24-etchnhalf.1
      Signed-off-by: NE.G. Keizer <keie@few.vu.nl>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      37ca8f5c
  19. 10 7月, 2008 3 次提交
  20. 17 5月, 2008 1 次提交
  21. 30 1月, 2008 2 次提交
    • C
      NLM/NFS: Use cached nlm_host when calling nlmclnt_proc() · 1093a60e
      Chuck Lever 提交于
      Now that each NFS mount point caches its own nlm_host structure, it can be
      passed to nlmclnt_proc() for each lock request.  By pinning an nlm_host for
      each mount point, we trade the overhead of looking up or creating a fresh
      nlm_host struct during every NLM procedure call for a little extra memory.
      
      We also restrict the nlmclnt_proc symbol to limit the use of this call to
      in-tree modules.
      
      Note that nlm_lookup_host() (just removed from the client's per-request
      NLM processing) could also trigger an nlm_host garbage collection.  Now
      client-side nlm_host garbage collection occurs only during NFS mount
      processing.  Since the NFS client now holds a reference on these nlm_host
      structures, they wouldn't have been affected by garbage collection
      anyway.
      
      Given that nlm_lookup_host() reorders the global nlm_host chain after
      every successful lookup, and that a garbage collection could be triggered
      during the call, we've removed a significant amount of per-NLM-request
      CPU processing overhead.
      
      Sidebar: there are only a few remaining references to the internals of
      NFS inodes in the client-side NLM code.  The only references I found are
      related to extracting or comparing the inode's file handle via NFS_FH().
      One is in nlmclnt_grant(); the other is in nlmclnt_setlockargs().
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      1093a60e
    • T
      NFS: Clean up the (commit|read|write)_setup() callback routines · bdc7f021
      Trond Myklebust 提交于
      Move the common code for setting up the nfs_write_data and nfs_read_data
      structures into fs/nfs/read.c, fs/nfs/write.c and fs/nfs/direct.c.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      bdc7f021
  22. 07 12月, 2007 1 次提交
  23. 10 10月, 2007 4 次提交