An error occurred fetching the project authors.
  1. 26 Feb, 2004 7 commits
  2. 07 Oct, 2003 1 commit
  3. 22 Sep, 2003 5 commits
    • Neil Brown's avatar
      [PATCH] knfsd: nfsdv4 byte range locking - LOCKU · 754bc768
      Neil Brown authored
      From: "William A.(Andy) Adamson" <andros@citi.umich.edu>
      
      This implments the LOCKU operation.  These all pass the connectathon
      lock test suite against the solaris nfsv4 client.
      754bc768
    • Neil Brown's avatar
      [PATCH] knfsd: nfsdv4 byte range locking - LOCKT · 50676cf4
      Neil Brown authored
      From: "William A.(Andy) Adamson" <andros@citi.umich.edu>
      
      This implements the LOCKT operation.
      50676cf4
    • Neil Brown's avatar
      [PATCH] knfsd: nfsd byte range locking - LOCK · ed5dc775
      Neil Brown authored
      From: "William A.(Andy) Adamson" <andros@citi.umich.edu>
      
      This implements the nfsv4 LOCK operation.
      ed5dc775
    • Neil Brown's avatar
      [PATCH] knfsd: idempotent replay cache for OPEN state · b8ba293d
      Neil Brown authored
      This implements the idempotent replay cache need for NFSv4 OPEN state.
      each state owner (open owner or lock owner) is required to store the
      last sequence number mutating operation, and retransmit it when replayed
      sequence number is presented for the operation.
      
      I've implemented the cache as a static buffer of size 112 bytes
      (NFSD4_REPLAY_ISIZE) which is large enough to hold the OPEN, the largest
      of the sequence mutation operations.  This implements the cache for
      OPEN, OPEN_CONFIRM, OPEN_DOWNGRADE, and CLOSE.  LOCK and UNLOCK will be
      added when byte-range locking is done (soon!).
      b8ba293d
    • Neil Brown's avatar
      [PATCH] knfsd: NFS4XDR get rid of warning · ca04cb99
      Neil Brown authored
      There is a warning because of calling return with an argument on a void
      function.  The root cause is putting a return statement in a macro (evil
      side effect).
      
      Change ENCODE_SEQID_OP_TAIL to be a more proper macro, change all
      calling functions to return void.
      ca04cb99
  4. 31 Aug, 2003 1 commit
  5. 05 Aug, 2003 1 commit
    • Neil Brown's avatar
      [PATCH] nfsv4 page boundary handling fixes. · 099e99f0
      Neil Brown authored
      From: Galen Michael Elias <gme@citi.umich.edu>
      
        This patch fixes two places where the handling of page boundaries was
      incorrect and caused to IO_ERR's when it shouldn't have.
      
      1.  In decode_write it was just a small typo.
      2.  In decode_compound we avoid using READ_BUF, but don't provide all of
      it's functionality, specifically crosses a page boundary.
      099e99f0
  6. 27 Jun, 2003 2 commits
    • Neil Brown's avatar
      [PATCH] NFSv4 server - open-downgrade · d6846e36
      Neil Brown authored
      From: "William A.(Andy) Adamson" <andros@citi.umich.edu>
      
      Add the opendowngrade call with share state processing. it includes
      nfs4_preprocess_stateid_op() which will be used in read and write
      state processing.
      d6846e36
    • Neil Brown's avatar
      [PATCH] NFSv4 server OPEN_CONFIRM · 469c9f8e
      Neil Brown authored
      From: "William A.(Andy) Adamson" <andros@citi.umich.edu>
      
      Add OPEN_CONFIRM functionality to the nfsv4 server, including a
      preprocess_seqid_op function that will be used in subsequent patches.
      469c9f8e
  7. 20 Jun, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] Add system calls statfs64 and fstatfs64 · 244f3626
      Andrew Morton authored
      From: Peter Chubb <peter@chubb.wattle.id.au>
      
      Add two new system calls, statfs64 and fstatfs64.  This has been needed
      sincew the 64-bit sector_t merge - the current structures will overflow.
      
      - Use a common interface (vfs_statfs) with the rest of the kernel,
      
      - convert to 32-bit at (f)statfs time.
      
      - New field f_frsize gives underlying fragment size for the filesystem.
        (Solaris has this, and the Open Group describe it).
      
      - The old statfs syscalls will now return -EOVERFLOW if the device was
        too large to be represented inthe old data structures.
      
      The new system calls take a size_t argument, which is the size of the
      structure to be filled in (as requested by Ben LaHaise), to `futureproof' the
      interface.
      
      Has been reviewed by the arch maintainers and by Ulrich Drepper.
      244f3626
  8. 17 Jun, 2003 2 commits
  9. 20 May, 2003 1 commit
    • Neil Brown's avatar
      [PATCH] kNFSd: Minor rearrangements in NFSv4 server code to prepare for mroe state management. · 9c88ef1f
      Neil Brown authored
      From: "William A.(Andy) Adamson" <andros@citi.umich.edu>
      
      this is the first of several patches against 2.5 concerning NFSv4 state for
      nfsd. it cleans up the names of state structures in preperation for future
      share, lease, byte-range, and delegation patches. specifically, it
      
      1) renames portions of the stateid_t and moves it along with the clientid_t
      from xdr.h into state.h
      
      2) uses xdr_netobj to gather related data and length fields in struct
      nfs4_open (in xdr4.h) (e.g. we have op_fname.data and op_fname.len
      instead of op_name and op_namelen).
      
      3) renames NFSD4_CLIENT_MAXNAME to NFS4_OPAQUE_LIMIT which will be used in
      other state fields (not just for name length)
      9c88ef1f
  10. 08 Apr, 2003 1 commit
  11. 27 Mar, 2003 3 commits
    • Neil Brown's avatar
      [PATCH] kNFSd:fix read encoding · 3172a066
      Neil Brown authored
      encode_read: change 'len' variable from unsigned long to a long for
      '(len > 0)' comparison.  don't set up a tail iovec for zero length
      reads.
      3172a066
    • Neil Brown's avatar
      [PATCH] kNFSd: fix WRITE decoding · 7ca47b80
      Neil Brown authored
      NFSv4 operations after WRITE are decoded into wr_vec[] pages, thus the
      argp->pagelen can be non-zero at the end of decoding the WRITE
      operation.
      
      This patch correctly sets argp->pagelen, and correctly advances argp->p
      after the WRITE operation
      7ca47b80
    • Neil Brown's avatar
      [PATCH] kNFSd: READ_BUF macro update · e43393f2
      Neil Brown authored
      Fix some misleading comments, and correct the test for requesting more
      than one page.
      e43393f2
  12. 24 Feb, 2003 1 commit
  13. 17 Feb, 2003 1 commit
    • Neil Brown's avatar
      [PATCH] Keep track of which page is the 'tail' of an NFSd reply · 467cb27b
      Neil Brown authored
      NFS replies can have a 'tail' after a 'data' component
      (for read, readlink, readdir).
      
      For nfsv2 and v3 this tail is in the same page as the head.
      For nfsv4, this tail is in a separate page.
      
      We need to keep track of which page so that it right one
      gets sent.  This patch does that.
      467cb27b
  14. 05 Jan, 2003 1 commit
  15. 01 Jan, 2003 1 commit
  16. 22 Nov, 2002 2 commits
    • Neil Brown's avatar
      [PATCH] kNFSd - 2 of 2 - Change NFSv4 reply encoding to cope with multiple pages. · dcffe12e
      Neil Brown authored
      This allows NFSv4 responses to cover move than one page.  There are
      still limits though.  There can be at most one 'data' response which
      includes READ, READLINK, READDIR.  For these responses, the interesting
      data goes in a separate page or, for READ, list of pages.
      
      All responses before the 'data' response must fit in one page, and all
      responses after it must also fit in one (separate) page.
      dcffe12e
    • Neil Brown's avatar
      [PATCH] kNFSd - 1 of 2 - Change NFSv4 xdr decoding to cope with separate pages. · 89fc0a31
      Neil Brown authored
      Now that nfsd uses a list of pages for requests instead of
      one large buffer, NFSv4 need to know about this.
      
      The most interesting part of this is that it is possible
      that section of a request, like a path name, could span
      two pages, so we need to be able to kmalloc as little bit
      of space to copy them into, and make sure they get
      freed later.
      89fc0a31
  17. 17 Nov, 2002 1 commit
    • Andi Kleen's avatar
      [PATCH] nanosecond stat timefields · 5d62665d
      Andi Kleen authored
      stat64 has been changed to return jiffies granuality as nsec in previously
      unused fields. This allows make to make better decisions on when
      to recompile a file. Follows losely the Solaris API.
      
      CURRENT_TIME has been redefined to return struct timespec.  The users
      who don't use it in a inode/attr context have been changed to use a new
      get_seconds() function.  CURRENT_TIME is implemented by an out-of-line
      function.
      
      There is a small performance penalty in this patch.  The previous
      filemap code had an optimization to flush atime only once a second.
      This is currently gone, which will increase flushes a bit.  I believe
      the correct solution if it should be a problem is to have per super
      block fields that give an arbitary atime flush granuality - so that you
      can set it to be only flushed once a hour if you prefer that.  I will
      work on that later in separate patches if the need should arise.
      
      struct inode and the attr struct has been changed to store struct
      timespec instead of time_t for [cma]time.  Not all file systems support
      this granuality, but some like XFS,NFSv3,CIFS,JFS do.  The others will
      currently truncate the nsec part on flushing to disk.  There was some
      discussion on this rounding on l-k previously.  I went for simple
      truncation because there is not much evidence IMHO that the more
      complicated roundings have any advantages.  In practice application will
      be rather unlikely to notice the rounding anyways - they can only see a
      difference when an inode is flush from memory and reloaded in less than
      a second, which is rather unlikely.
      5d62665d
  18. 30 Oct, 2002 1 commit
    • Neil Brown's avatar
      [PATCH] kNFSd: nfsd_readdir changes. · 335c5fc7
      Neil Brown authored
      nfsd_readdir - the common readdir code for all version of nfsd,
      contains a number of version-specific things with appropriate checks,
      and also does some xdr-encoding which rightly belongs elsewhere.
      
      This patch simplifies nfsd_readdir to do just the core stuff, and moves
      the version specifics into version specific files, and the xdr encoding
      into xdr encoding files.
      335c5fc7
  19. 16 Oct, 2002 1 commit
  20. 11 Oct, 2002 1 commit
    • Neil Brown's avatar
      [PATCH] kNFSd: Giant patch importing NFSv4 server functionality · b59e9ac5
      Neil Brown authored
      Now that all the hooks are in place, this large patch imports all
      of the new code for the NFSv4 server.
      
      This patch makes almost no changes to the existing nfsd codebase
      (these have been taken care of by the preceding patches).
      
      One aspect of the NFSv4 code deserves comment.  The most natural scheme
      for processing a COMPOUND request would seem to be:
        1a. XDR decode phase, decode args of all operations
        2a. processing phase, process all operations
        3a. XDR encode phase, encode results of all operations
      
      However, we use a scheme which works as follows:
        1b. XDR decode phase, decode args of all operations
        2b. For each operation,
              process the operation
              encode the result
      
      To see what is wrong with the first scheme, consider a COMPOUND
      of the form READ REMOVE.  Since the last bit of processing for
      the READ request occurs in XDR encode, we might discover in step
      3a that the READ request should return an error.  Therefore, the
      REMOVE request should not be processed at all.  This is a fatal
      problem, since the REMOVE was already been done in step 2a!
      
      Another type of problem would occur in a COMPOUND of the form
      READ WRITE.  Assume that both operations succeed.  Under scheme
      (a), the WRITE is actually performed _before_ the READ (since
      the "real" READ is really done during XDR encode).  This is
      certainly incorrect if the READ and WRITE ranges overlap.
      
      These examples might seem a little artificial, but nevertheless
      it does seem that in order to process a COMPOUND correctly in
      all cases, we need to use scheme (b) instead of scheme (a).
      
      (To construct less artificial examples, just substitute GETATTR
       for READ in the examples above.  This works because the "real"
       GETATTR is done during XDR encode: one would really have to
       bend over backwards in order to arrange things otherwise.)
      b59e9ac5