1. 01 9月, 2011 2 次提交
  2. 28 8月, 2011 2 次提交
  3. 20 8月, 2011 1 次提交
  4. 16 7月, 2011 1 次提交
  5. 18 3月, 2011 1 次提交
  6. 14 2月, 2011 1 次提交
    • J
      nfsd4: acquire only one lease per file · acfdf5c3
      J. Bruce Fields 提交于
      Instead of acquiring one lease each time another client opens a file,
      nfsd can acquire just one lease to represent all of them, and reference
      count it to determine when to release it.
      
      This fixes a regression introduced by
      c45821d2 "locks: eliminate fl_mylease
      callback": after that patch, only the struct file * is used to determine
      who owns a given lease.  But since we recently converted the server to
      share a single struct file per open, if we acquire multiple leases on
      the same file from nfsd, it then becomes impossible on unlocking a lease
      to determine which of those leases (all of whom share the same struct
      file *) we meant to remove.
      
      Thanks to Takashi Iwai <tiwai@suse.de> for catching a bug in a previous
      version of this patch.
      Tested-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      acfdf5c3
  7. 12 1月, 2011 4 次提交
  8. 05 1月, 2011 2 次提交
    • T
      nfs4: set source address when callback is generated · 6f3d772f
      Takuma Umeya 提交于
      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: NTakuma Umeya <tumeya@redhat.com>
      [bfields@redhat.com: Simplify gen_callback arguments, use helper function]
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      6f3d772f
    • J
      nfsd4: use a single struct file for delegations · c84d500b
      J. Bruce Fields 提交于
      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: NJ. Bruce Fields <bfields@redhat.com>
      c84d500b
  9. 21 10月, 2010 6 次提交
  10. 02 10月, 2010 8 次提交
  11. 27 8月, 2010 2 次提交
  12. 30 7月, 2010 1 次提交
    • J
      nfsd4: share file descriptors between stateid's · f9d7562f
      J. Bruce Fields 提交于
      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: NJ. Bruce Fields <bfields@citi.umich.edu>
      f9d7562f
  13. 13 5月, 2010 3 次提交
  14. 22 4月, 2010 4 次提交
    • J
      nfsd4: allow 4.0 clients to change callback path · 4b21d0de
      J. Bruce Fields 提交于
      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: NJ. Bruce Fields <bfields@citi.umich.edu>
      4b21d0de
    • J
      nfsd4: rearrange cb data structures · 2bf23875
      J. Bruce Fields 提交于
      Mainly I just want to separate the arguments used for setting up the tcp
      client from the rest.
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      2bf23875
    • J
      nfsd4: cl_count is unused · b12a05cb
      J. Bruce Fields 提交于
      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: NJ. Bruce Fields <bfields@citi.umich.edu>
      b12a05cb
    • J
      nfsd4: don't sleep in lease-break callback · b5a1a81e
      J. Bruce Fields 提交于
      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: NJ. Bruce Fields <bfields@citi.umich.edu>
      b5a1a81e
  15. 03 4月, 2010 1 次提交
  16. 16 12月, 2009 1 次提交