1. 25 6月, 2010 2 次提交
  2. 23 6月, 2010 4 次提交
  3. 01 6月, 2010 4 次提交
  4. 25 5月, 2010 1 次提交
  5. 22 5月, 2010 2 次提交
  6. 19 5月, 2010 2 次提交
    • J
      Revert "nfsd4: distinguish expired from stale stateids" · e4e83ea4
      J. Bruce Fields 提交于
      This reverts commit 78155ed7.
      
      We're depending here on the boot time that we use to generate the
      stateid being monotonic, but get_seconds() is not necessarily.
      
      We still depend at least on boot_time being different every time, but
      that is a safer bet.
      
      We have a few reports of errors that might be explained by this problem,
      though we haven't been able to confirm any of them.
      
      But the minor gain of distinguishing expired from stale errors seems not
      worth the risk.
      
      Conflicts:
      
      	fs/nfsd/nfs4state.c
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      e4e83ea4
    • P
      nfsd: safer initialization order in find_file() · 47cee541
      Pavel Emelyanov 提交于
      The alloc_init_file() first adds a file to the hash and then
      initializes its fi_inode, fi_id and fi_had_conflict.
      
      The uninitialized fi_inode could thus be erroneously checked by
      the find_file(), so move the hash insertion lower.
      
      The client_mutex should prevent this race in practice; however, we
      eventually hope to make less use of the client_mutex, so the ordering
      here is an accident waiting to happen.
      
      I didn't find whether the same can be true for two other fields,
      but the common sense tells me it's better to initialize an object
      before putting it into a global hash table :)
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      47cee541
  7. 18 5月, 2010 1 次提交
  8. 15 5月, 2010 1 次提交
  9. 14 5月, 2010 1 次提交
  10. 13 5月, 2010 4 次提交
  11. 12 5月, 2010 5 次提交
  12. 08 5月, 2010 1 次提交
  13. 04 5月, 2010 1 次提交
  14. 03 5月, 2010 1 次提交
  15. 27 4月, 2010 1 次提交
    • N
      nfsd4: bug in read_buf · 2bc3c117
      Neil Brown 提交于
      When read_buf is called to move over to the next page in the pagelist
      of an NFSv4 request, it sets argp->end to essentially a random
      number, certainly not an address within the page which argp->p now
      points to.  So subsequent calls to READ_BUF will think there is much
      more than a page of spare space (the cast to u32 ensures an unsigned
      comparison) so we can expect to fall off the end of the second
      page.
      
      We never encountered thsi in testing because typically the only
      operations which use more than two pages are write-like operations,
      which have their own decoding logic.  Something like a getattr after a
      write may cross a page boundary, but it would be very unusual for it to
      cross another boundary after that.
      
      Cc: stable@kernel.org
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      2bc3c117
  16. 23 4月, 2010 1 次提交
  17. 22 4月, 2010 5 次提交
    • J
      nfsd4: complete enforcement of 4.1 op ordering · 57716355
      J. Bruce Fields 提交于
      Enforce the rules about compound op ordering.
      
      Motivated by implementing RECLAIM_COMPLETE, for which the client is
      implicit in the current session, so it is important to ensure a
      succesful SEQUENCE proceeds the RECLAIM_COMPLETE.
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      57716355
    • 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
  18. 20 4月, 2010 1 次提交
  19. 17 4月, 2010 1 次提交
  20. 03 4月, 2010 1 次提交