1. 04 10月, 2008 1 次提交
    • J
      nfsd: common grace period control · af558e33
      J. Bruce Fields 提交于
      Rewrite grace period code to unify management of grace period across
      lockd and nfsd.  The current code has lockd and nfsd cooperate to
      compute a grace period which is satisfactory to them both, and then
      individually enforce it.  This creates a slight race condition, since
      the enforcement is not coordinated.  It's also more complicated than
      necessary.
      
      Here instead we have lockd and nfsd each inform common code when they
      enter the grace period, and when they're ready to leave the grace
      period, and allow normal locking only after both of them are ready to
      leave.
      
      We also expect the locks_start_grace()/locks_end_grace() interface here
      to be simpler to build on for future cluster/high-availability work,
      which may require (for example) putting individual filesystems into
      grace, or enforcing grace periods across multiple cluster nodes.
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      af558e33
  2. 23 7月, 2008 1 次提交
  3. 16 7月, 2008 4 次提交
  4. 02 2月, 2008 1 次提交
  5. 07 5月, 2007 3 次提交
    • M
      lockd: add code to handle deferred lock requests · 1a8322b2
      Marc Eshel 提交于
      Rewrite nlmsvc_lock() to use the asynchronous interface.
      
      As with testlock, we answer nlm requests in nlmsvc_lock by first looking up
      the block and then using the results we find in the block if B_QUEUED is
      set, and calling vfs_lock_file() otherwise.
      
      If this a new lock request and we get -EINPROGRESS return on a non-blocking
      request then we defer the request.
      
      Also modify nlmsvc_unlock() to call the filesystem method if appropriate.
      Signed-off-by: NMarc Eshel <eshel@almaden.ibm.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      1a8322b2
    • M
      lockd: handle test_lock deferrals · 5ea0d750
      Marc Eshel 提交于
      Rewrite nlmsvc_testlock() to use the new asynchronous interface: instead of
      immediately doing a posix_test_lock(), we first look for a matching block.
      If the subsequent test_lock returns anything other than -EINPROGRESS, we
      then remove the block we've found and return the results.
      
      If it returns -EINPROGRESS, then we defer the lock request.
      
      In the case where the block we find in the first step has B_QUEUED set,
      we bypass the vfs_test_lock entirely, instead using the block to decide how
      to respond:
      	with nlm_lck_denied if B_TIMED_OUT is set.
      	with nlm_granted if B_GOT_CALLBACK is set.
      	by dropping if neither B_TIMED_OUT nor B_GOT_CALLBACK is set
      Signed-off-by: NMarc Eshel <eshel@almaden.ibm.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      5ea0d750
    • M
      lockd: pass cookie in nlmsvc_testlock · 85f3f1b3
      Marc Eshel 提交于
      Change NLM internal interface to pass more information for test lock; we
      need this to make sure the cookie information is pushed down to the place
      where we do request deferral, which is handled for testlock by the
      following patch.
      Signed-off-by: NMarc Eshel <eshel@almaden.ibm.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      85f3f1b3
  6. 13 2月, 2007 2 次提交
  7. 06 12月, 2006 1 次提交
  8. 21 10月, 2006 2 次提交
  9. 17 10月, 2006 1 次提交
    • N
      [PATCH] knfsd: Allow lockd to drop replies as appropriate · d343fce1
      NeilBrown 提交于
      It is possible for the ->fopen callback from lockd into nfsd to find that an
      answer cannot be given straight away (an upcall is needed) and so the request
      has to be 'dropped', to be retried later.  That error status is not currently
      propagated back.
      
      So:
        Change nlm_fopen to return nlm error codes (rather than a private
        protocol) and define a new nlm_drop_reply code.
        Cause nlm_drop_reply to cause the rpc request to get rpc_drop_reply
        when this error comes back.
        Cause svc_process to drop a request which returns a status of
        rpc_drop_reply.
      
      [akpm@osdl.org: fix warning storm]
      Cc: Marc Eshel <eshel@almaden.ibm.com>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d343fce1
  10. 04 10月, 2006 5 次提交
  11. 01 7月, 2006 1 次提交
  12. 21 3月, 2006 3 次提交
  13. 15 2月, 2006 1 次提交
    • T
      [PATCH] NLM: Fix the NLM_GRANTED callback checks · 5ac5f9d1
      Trond Myklebust 提交于
      If 2 threads attached to the same process are blocking on different locks on
      different files (maybe even on different servers) but have the same lock
      arguments (i.e.  same offset+length - actually quite common, since most
      processes try to lock the entire file) then the first GRANTED call that wakes
      one up will also wake the other.
      
      Currently when the NLM_GRANTED callback comes in, lockd walks the list of
      blocked locks in search of a match to the lock that the NLM server has
      granted.  Although it checks the lock pid, start and end, it fails to check
      the filehandle and the server address.
      
      By checking the filehandle and server IP address, we ensure that this only
      happens if the locks truly are referencing the same file.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5ac5f9d1
  14. 07 1月, 2006 1 次提交
  15. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4