]> git.baikalelectronics.ru Git - kernel.git/commit
nfsd4: teach encoders to handle reserve_space failures
authorJ. Bruce Fields <bfields@redhat.com>
Thu, 30 Jan 2014 22:18:38 +0000 (17:18 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 30 May 2014 21:31:49 +0000 (17:31 -0400)
commitb6064522d3b14dc6f53d6643560691ff19df2651
tree05f80bdf7d0ebfa0c119430fa4f895021e58af42
parente50c58ec33b42c3b73b946e87e3ef321b1d86e43
nfsd4: teach encoders to handle reserve_space failures

We've tried to prevent running out of space with COMPOUND_SLACK_SPACE
and special checking in those operations (getattr) whose result can vary
enormously.

However:
- COMPOUND_SLACK_SPACE may be difficult to maintain as we add
  more protocol.
- BUG_ON or page faulting on failure seems overly fragile.
- Especially in the 4.1 case, we prefer not to fail compounds
  just because the returned result came *close* to session
  limits.  (Though perfect enforcement here may be difficult.)
- I'd prefer encoding to be uniform for all encoders instead of
  having special exceptions for encoders containing, for
  example, attributes.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4xdr.c
fs/nfsd/xdr4.h