1. 11 Jan, 2011 4 commits
  2. 04 Jan, 2011 2 commits
    • Takuma Umeya's avatar
      nfs4: set source address when callback is generated · 6f3d772f
      Takuma Umeya authored
      
      when callback is generated in NFSv4 server, it doesn't set the source
      address. When an alias IP is utilized on NFSv4 server and suppose the
      client is accessing via that alias IP (e.g. eth0:0), the client invokes
      the callback to the IP address that is set on the original device (e.g.
      eth0). This behavior results in timeout of xprt.
      The patch sets the IP address that the client should invoke callback to.
      Signed-off-by: default avatarTakuma Umeya <tumeya@redhat.com>
      [bfields@redhat.com: Simplify gen_callback arguments, use helper function]
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      6f3d772f
    • J. Bruce Fields's avatar
      nfsd4: use a single struct file for delegations · c84d500b
      J. Bruce Fields authored
      
      When we converted to sharing struct filess between nfs4 opens I went too
      far and also used the same mechanism for delegations.  But keeping
      a reference to the struct file ensures it will outlast the lease, and
      allows us to remove the lease with the same file as we added it.
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      c84d500b
  3. 21 Oct, 2010 6 commits
  4. 01 Oct, 2010 8 commits
  5. 26 Aug, 2010 2 commits
  6. 29 Jul, 2010 1 commit
    • J. Bruce Fields's avatar
      nfsd4: share file descriptors between stateid's · f9d7562f
      J. Bruce Fields authored
      
      The vfs doesn't really allow us to "upgrade" a file descriptor from
      read-only to read-write, and our attempt to do so in nfs4_upgrade_open
      is ugly and incomplete.
      
      Move to a different scheme where we keep multiple opens, shared between
      open stateid's, in the nfs4_file struct.  Each file will be opened at
      most 3 times (for read, write, and read-write), and those opens will be
      shared between all clients and openers.  On upgrade we will do another
      open if necessary instead of attempting to upgrade an existing open.
      We keep count of the number of readers and writers so we know when to
      close the shared files.
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      f9d7562f
  7. 13 May, 2010 3 commits
  8. 22 Apr, 2010 4 commits
    • J. Bruce Fields's avatar
      nfsd4: allow 4.0 clients to change callback path · 4b21d0de
      J. Bruce Fields authored
      
      The rfc allows a client to change the callback parameters, but we didn't
      previously implement it.
      
      Teach the callbacks to rerun themselves (by placing themselves on a
      workqueue) when they recognize that their rpc task has been killed and
      that the callback connection has changed.
      
      Then we can change the callback connection by setting up a new rpc
      client, modifying the nfs4 client to point at it, waiting for any work
      in progress to complete, and then shutting down the old client.
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      4b21d0de
    • J. Bruce Fields's avatar
      nfsd4: rearrange cb data structures · 2bf23875
      J. Bruce Fields authored
      
      Mainly I just want to separate the arguments used for setting up the tcp
      client from the rest.
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      2bf23875
    • J. Bruce Fields's avatar
      nfsd4: cl_count is unused · b12a05cb
      J. Bruce Fields authored
      
      Now that the shutdown sequence guarantees callbacks are shut down before
      the client is destroyed, we no longer have a use for cl_count.
      
      We'll probably reinstate a reference count on the client some day, but
      it will be held by users other than callbacks.
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      b12a05cb
    • J. Bruce Fields's avatar
      nfsd4: don't sleep in lease-break callback · b5a1a81e
      J. Bruce Fields authored
      
      The NFSv4 server's fl_break callback can sleep (dropping the BKL), in
      order to allocate a new rpc task to send a recall to the client.
      
      As far as I can tell this doesn't cause any races in the current code,
      but the analysis is difficult.  Also, the sleep here may complicate the
      move away from the BKL.
      
      So, just schedule some work to do the job for us instead.  The work will
      later also prove useful for restarting a call after the callback
      information is changed.
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      b5a1a81e
  9. 02 Apr, 2010 1 commit
  10. 15 Dec, 2009 2 commits
  11. 14 Dec, 2009 2 commits
    • Boaz Harrosh's avatar
      nfsd: Move private headers to source directory · 9a74af21
      Boaz Harrosh authored
      
      Lots of include/linux/nfsd/* headers are only used by
      nfsd module. Move them to the source directory
      Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      9a74af21
    • Boaz Harrosh's avatar
      nfsd: Headers Independence and include cleanups · 72579ac9
      Boaz Harrosh authored
      
      * Add includes that are directly used by headers
      * Remove includes that are not needed
      
      These are the changes made:
      
      [xdr.h]
      struct nfsd_readdirres has an embedded struct readdir_cd from nfsd.h
      fixing that we can drop other includes
      
      [xdr4.h]
      embedded types defined both at state.h and nfsd.h
      
      [syscall.h]
      After export.h fix none of these stuff is needed.
      fix extra space in # include <> statement
      
      [stats.h]
      does not need <linux/nfs4.h> but was export to user-mode
      so I don't touch it
      
      [state.h]
      embedded types from nfsfh.h like struct knfsd_fh. bringing that
      eliminates the need for all other includes
      
      [nfsfh.h]
      directly manipulating types from sunrpc/svc.h.
      Removed Other unused headers.
      
      [nfsd.h]
      removed unused headers include
      
      [export.h]
      lots of sunrpc/svc.h types and a single prototype declaration
      with pointer from nfsfh.h, but all users of export.h do need
      nfsfh.h any way. remove now un-needed include.
      
      [const.h]
      Unfixed (not independent)
      
      [cache.h]
      could do with a forward declaration of "struct svc_rqst;"
      from sunrpc/svc.h but all users absolutely will need
      sunrpc/svc.h it is easier overall this way.
      Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      72579ac9
  12. 05 Nov, 2009 1 commit
  13. 15 Sep, 2009 4 commits