1. 11 Oct, 2002 24 commits
    • Neil Brown's avatar
    • Neil Brown's avatar
    • Neil Brown's avatar
      [PATCH] kNFSd: Move auth domain lookup into svcauth · 00ef0ed7
      Neil Brown authored
      Instead of doing the lookup from ipaddr to domain inside
      the nfs server, (and also when lockd calls into nfsd) it is
      now done at the rpc authentication level which is a more
      sensible place for it.
      
      Note that both AUTH_UNIX and AUTH_NULL do the same lookup.
      
      So that the rpc layer knows that nfsd and lockd both uses the
      name space of domains (while other hypothetical services may
      not) we introduce a 'class' for each service which svc_auth combines
      with the IP address when doing a lookup.
      00ef0ed7
    • Neil Brown's avatar
      [PATCH] kNFSd: Use new cache infrastructure for auth_unix specific lookups. · 624361e4
      Neil Brown authored
      This patch introduces two caches using the new infrastucture, and the
      concept of a 'domain'.
      
      A 'domain' refers to a collection of clients that all have the same
      view of the nfs server, and all have the same access rights (modulo
      different users on the clients).  For AUTH_UNIX (and AUTH_NULL), the
      domain is determined from the IP address.  For other authentication
      styles, the domain might be determined directly from the credentials.
      
      Each auth flavour knows how to allocate and free it's domain-specific
      infomation.
      
      auth_domain_cache maps a name to a domain which is owned by
      an auth flavour.
      
      ip_map_cache is a cache specific to AUTH_UNIX which maps
      IP address to domain.
      
      With this patch, svcauth_unix.c is created to store all
      auth_unix related code.
      
      The IP address lookup code is removed from nfsd/exports.c
      
      sunrpc module initilisation is moved out of stats.c into sunrpc_syms
      which seemed to be the most central .c file.  It now registers these
      two caches.
      
      Now that the caches are being used, nfsd needs to call cache_clean
      periodically.
      624361e4
    • Neil Brown's avatar
      [PATCH] kNFSd: Initialial caching infrastructure for RPC authentication caches · f00a9f4d
      Neil Brown authored
      This patch provides a "virtual class" for defining caches
      that make user-space information available in the kernel
      It is intended for RPC services or clients that need user-space
      support for authentication.
      
      As yet, support for userspace interaction isn't included as I want
      that to be able to have separate review.
      f00a9f4d
    • Neil Brown's avatar
      [PATCH] kNFSd: Tidy up the rpc authentication interface. · 7b1c5134
      Neil Brown authored
      Define auth_ops that contains a method for authenticating a request and a
      method for authorising a reply.  Call both methods as appropriate.
      
      Also discard rq_verfed and cr_flavour, neither ever used.
      And discard rq_auth as it isn't needed.
      7b1c5134
    • Neil Brown's avatar
    • 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
    • Neil Brown's avatar
      [PATCH] kNFSd: Stub support for name lookup · 106c646c
      Neil Brown authored
      NFSv4 need to be able to make from user/group name
      to user/group id.  This include file contains some
      simple stubs to do this.  They will be replaced with
      something that really works later.
      106c646c
    • Neil Brown's avatar
      [PATCH] kNFSd: ensure XDR buffer is large enough for NFSv4 · 700ee9f0
      Neil Brown authored
      This patch changes the 'xdrsize' parameter to svc_create(), to be
           NFS4_SVC_XDRSIZE   if v4 is defined
      else NFS3_SVC_XDRSIZE   if v3 is defined
      else NFS2_SVC_XDRSIZE     (formerly NFSSVC_XDRSIZE)
      
      This always works, since
           NFS4_SVC_XDRSIZE >= NFS3_SVC_XDRSIZE >= NFS2_SVC_XDRSIZE.
      
      The value of NFSD_BUFSIZE has also been moved to const.h, since we need
      the definition available in nfs4proc.c
      700ee9f0
    • Neil Brown's avatar
      [PATCH] kNFSd: New routine exp_pseudoroot() to find 'root' filehandle for nfsv4 · bbe0c3d9
      Neil Brown authored
      NFSv4 has a concept of a 'root' filehandle (from which all other can
      be found via LOOKUP, so no need for mountd).
      
      This patch defines exp_pseudoroot(), which is used to set the filehandle
      for the root of the pseudofs. The root is defined to be the export
      point with fsid == 0.
      bbe0c3d9
    • Neil Brown's avatar
      [PATCH] kNFSd: new routine fh_dup2() · 38782482
      Neil Brown authored
      Define fh_dup2(), which copies a _verified_ filehandle, taking care
      of refcounts accordingly.  (This will be used by RESTOREFH/SAVEFH and
      a few other places.)
      38782482
    • Neil Brown's avatar
      18d9355d
    • Neil Brown's avatar
      [PATCH] kNFSd: header file for NFSv4 XDR · 9b831fb9
      Neil Brown authored
      Instantiate a new file include/linux/nfsd/xdr4.h (server-side XDR for
      NFSv4).
      9b831fb9
    • Neil Brown's avatar
      [PATCH] kNFSd: pre-zero response for lockd _msg requests. · 930357a9
      Neil Brown authored
      All the lockd *_msg requests are implemented by
      calling the equivalent non- *_msg request and sending off
      the response as a new message (*_res).
      
      For the non- *_msg requests, the response buffer is
      pre-zeroed by the RPC layer, but the *_msg handlers weren't
      pre-zeroing the buffer, would could in some circumstances lead to
      an Oops.
      
      Now we pre-zero them all.
      930357a9
    • Neil Brown's avatar
      [PATCH] kNFSd: A couple of possible incorrect calls to dput.... · 7fffa27d
      Neil Brown authored
      Thanks to Hirokazu Takahashi <taka@valinux.co.jp>
      7fffa27d
    • Neil Brown's avatar
      [PATCH] kNFSd: Use correct value for max size for readlink response. · 9b2ae623
      Neil Brown authored
      Symlinks in NFSv3 can be upto 1024 bytes, not 256 like nfsv2.
      9b2ae623
    • Neil Brown's avatar
      [PATCH] kNFSd: Remove the nfs-devel list from MAINTAINERS · ba1dd456
      Neil Brown authored
      It only gets spam these days...
      ba1dd456
    • Linus Torvalds's avatar
      Merge bk://linux-bt.bkbits.net/bt-2.5 · 5665c2a2
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      5665c2a2
    • Luca Tettamanti's avatar
      b8041f7b
    • Luca Tettamanti's avatar
      19516634
    • Luca Tettamanti's avatar
      96123596
    • Luca Tettamanti's avatar
      6e23d74a
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk · 3ef3aca5
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      3ef3aca5
  2. 12 Oct, 2002 1 commit
  3. 11 Oct, 2002 15 commits
    • Russell King's avatar
      [SERIAL] Fix serial.h/serialP.h ordering nightmare. · 92b0797e
      Russell King authored
      Don't release NULL resources.
      92b0797e
    • Russell King's avatar
      [SERIAL] Fix oops when removing some PCI serial boards · 8f3c0618
      Russell King authored
      Patch from William Lee Irwin II.
      8f3c0618
    • Russell King's avatar
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · f55b6cfb
      Trond Myklebust authored
      A trivial loose end: add a 'lease_time' field to 'struct nfs_fsinfo'.
      f55b6cfb
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 56d03a52
      Trond Myklebust authored
      Now that all calls to nfs_async_handle_jukebox() have been moved to
      fs/nfs/nfs3proc.c, we clean up by moving the nfs_async_jukebox() routine
      itself there.  We also rename it nfs3_async_handle_jukebox(), to be
      consistent with the naming conventions of that file.
      56d03a52
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · be6b809b
      Trond Myklebust authored
      In NFSv3, an RPC is retried if the special error NFSERR_JUKEBOX is
      received.  This generic bit of postprocessing happens invisibly for
      synchronous RPC's, but in the async case, the ->tk_exit callback
      must call nfs_async_handle_jukebox() by hand.
      
      In NFSv4, we also need generic postprocessing of async RPC's, but
      the details are different.  Therefore, we don't want to call
      nfs_async_handle_jukebox(); we want to call a different, NFSv4-specific
      routine.  Therefore, we want to move calls to nfs_async_handle_jukebox()
      out of the "generic" NFS code and into NFSv3-specific routines.  This
      has already been done for async READ and WRITE in the preceding patches,
      but there is still one outstanding case: the async REMOVE in sillyrename.
      
      This patch removes nfs_async_handle_jukebox() from the async sillyrename
      path, and puts in the NFSv3 ->unlink_done() rpc_op.
      be6b809b
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · c44ca040
      Trond Myklebust authored
      This is a nontrivial change to the NFS client.
      
      This patch does for the async WRITE and COMMIT paths what patch 15
      did for the async READ path, by defining new nfs_rpc_ops ->setup_write()
      and ->setup_commit().
      c44ca040
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 5dfe032f
      Trond Myklebust authored
      This is a nontrivial change to the NFS client.
      
      This patch does for the async WRITE and COMMIT paths what patch 14
      did for the async READ path, by changing 'struct nfs_write_data'
      so that the v2- and v3-specific parts are moved into a private area,
      with room for a v4-specific part in parallel.  None of the logic is
      changed.
      5dfe032f
    • Marcel Holtmann's avatar
      Merge bk://linux.bkbits.net/linux-2.5 · 067239c0
      Marcel Holtmann authored
      into hostme.bitkeeper.com:/ua/repos/l/linux-bt/bt-2.5
      067239c0
    • Trond Myklebust's avatar
      [PATCH] Disable Nagle algorithm for RPC over TCP. · 0e32be1d
      Trond Myklebust authored
      The Nagle algorithm gets in the way when sending short RPC messages to
      the server. The following patch from Chuck does the equivalent of
      setting TCP_NODELAY on the socket.
      0e32be1d
    • Trond Myklebust's avatar
      [PATCH] Remove unbalanced kunmap() in NFS readdir code · 78dfaef8
      Trond Myklebust authored
      The following seems to have survived the purge ..
      78dfaef8
    • Andrew Morton's avatar
      [PATCH] x86 uniproc compile fix · c4aa1250
      Andrew Morton authored
      Fix uniprocessor compilation.
      
      do_timer.h needs asm/mpspec.h for the declaration of `using_apic_timer'
      c4aa1250
    • Doug Ledford's avatar
      f7353c67
    • Doug Ledford's avatar
      [PATCH] aic7xxx_old update and a compile warning fix in scsi.c · 224896aa
      Doug Ledford authored
      Rework lots of cruft in the aic7xxx_old driver so that it can be more
      easily read and understood by other people and so it starts on the road
      to giving a clearer picture of how to interact with the scsi mid layer.
      224896aa
    • Doug Ledford's avatar
      [PATCH] tcq fixes for the issue on linux-kernel · e02b943b
      Doug Ledford authored
      This does 4 things.  Fixes the oversight James found about cmd_per_lun.
      Makes scsi_adjust_queue_depth() implement the usage of tagged that I
      described in my email to linux-scsi.  Updates some comments to highlight
      things that are going to go away shortly.  Removes the call to
      host->select_queue_depths() entirely since drivers that implement this
      will try to set SDptr->queue_depth to the desired depth, which in reality
      will do nothing but confuse the mid layer since that is now the actual
      allocated command counter, so it won't make the mid layer allocate more
      commands, it will make the mid layer think more commands have been
      allocated.
      e02b943b