1. 08 12月, 2019 1 次提交
  2. 01 12月, 2019 2 次提交
  3. 20 11月, 2019 1 次提交
  4. 13 11月, 2019 2 次提交
  5. 09 11月, 2019 5 次提交
  6. 12 10月, 2019 1 次提交
  7. 10 10月, 2019 1 次提交
    • S
      nfsd4: fix up replay_matches_cache() · 6e73e92b
      Scott Mayhew 提交于
      When running an nfs stress test, I see quite a few cached replies that
      don't match up with the actual request.  The first comment in
      replay_matches_cache() makes sense, but the code doesn't seem to
      match... fix it.
      
      This isn't exactly a bugfix, as the server isn't required to catch every
      case of a false retry.  So, we may as well do this, but if this is
      fixing a problem then that suggests there's a client bug.
      
      Fixes: 53da6a53 ("nfsd4: catch some false session retries")
      Signed-off-by: NScott Mayhew <smayhew@redhat.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      6e73e92b
  8. 09 10月, 2019 2 次提交
  9. 24 9月, 2019 2 次提交
  10. 21 9月, 2019 2 次提交
    • N
      nfsd: degraded slot-count more gracefully as allocation nears exhaustion. · 2030ca56
      NeilBrown 提交于
      This original code in nfsd4_get_drc_mem() would hand out 30
      slots (approximately NFSD_MAX_MEM_PER_SESSION bytes at slightly
      over 2K per slot) to each requesting client until it ran out
      of space, then it would possibly give one last client a reduced
      allocation, then fail the allocation.
      
      Since commit de766e57 ("nfsd: give out fewer session slots as
      limit approaches") the last 90 slots to be given to about 12
      clients with quickly reducing slot counts (better than just 3
      clients).  This still seems unnecessarily hasty.
      A subsequent patch allows over-allocation so every client gets
      at least one slot, but that might be a bit restrictive.
      
      The requested number of nfsd threads is the best guide we have to the
      expected number of clients, so use that - if it is at least 8.
      
      256 threads on a 256Meg machine - which is a lot for a tiny machine -
      would result in nfsd_drc_max_mem being 2Meg, so 8K (3 slots) would be
      available for the first client, and over 200 clients would get more
      than 1 slot.  So I don't think this change will be too debilitating on
      poorly configured machines, though it does mean that a sensible
      configuration is a little more important.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      2030ca56
    • N
      nfsd: handle drc over-allocation gracefully. · 7f49fd5d
      NeilBrown 提交于
      Currently, if there are more clients than allowed for by the
      space allocation in set_max_drc(), we fail a SESSION_CREATE
      request with NFS4ERR_DELAY.
      This means that the client retries indefinitely, which isn't
      a user-friendly response.
      
      The RFC requires NFS4ERR_NOSPC, but that would at best result in a
      clean failure on the client, which is not much more friendly.
      
      The current space allocation is a best-guess and doesn't provide any
      guarantees, we could still run out of space when trying to allocate
      drc space.
      
      So fail more gracefully - always give out at least one slot.
      If all clients used all the space in all slots, we might start getting
      memory pressure, but that is possible anyway.
      
      So ensure 'num' is always at least 1, and remove the test for it
      being zero.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      7f49fd5d
  11. 10 9月, 2019 6 次提交
  12. 06 9月, 2019 1 次提交
  13. 29 8月, 2019 1 次提交
    • J
      nfsd: eliminate an unnecessary acl size limit · 2b86e3aa
      J. Bruce Fields 提交于
      We're unnecessarily limiting the size of an ACL to less than what most
      filesystems will support.  Some users do hit the limit and it's
      confusing and unnecessary.
      
      It still seems prudent to impose some limit on the number of ACEs the
      client gives us before passing it straight to kmalloc().  So, let's just
      limit it to the maximum number that would be possible given the amount
      of data left in the argument buffer.
      
      That will still leave one limit beyond whatever the filesystem imposes:
      the client and server negotiate a limit on the size of a request, which
      we have to respect.
      
      But we're no longer imposing any additional arbitrary limit.
      
      struct nfs4_ace is 20 bytes on my system and the maximum call size we'll
      negotiate is about a megabyte, so in practice this is limiting the
      allocation here to about a megabyte.
      Reported-by: N"de Vandiere, Louis" <louis.devandiere@atos.net>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      2b86e3aa
  14. 26 8月, 2019 1 次提交
    • J
      Deprecate nfsd fault injection · 9d60d931
      J. Bruce Fields 提交于
      This is only useful for client testing.  I haven't really maintained it,
      and reference counting and locking are wrong at this point.  You can get
      some of the same functionality now from nfsd/clients/.
      
      It was a good idea but I think its time has passed.
      
      In the unlikely event of users, hopefully the BROKEN dependency will
      prompt them to speak up.  Otherwise I expect to remove it soon.
      Reported-by: NAlex Lyakas <alex@zadara.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      9d60d931
  15. 20 8月, 2019 1 次提交
  16. 19 8月, 2019 11 次提交