summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/state.h
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2011-08-23 11:03:29 -0400
committerJ. Bruce Fields <bfields@redhat.com>2011-08-31 17:56:00 -0400
commit81b829655d418316f0707b3656b45cff7a1dbf12 (patch)
treedfd373c283c89514898cd1147969c4fffb2485a2 /fs/nfsd/state.h
parentb79abaddfe7ef29e00d71721cf03a33e00d53317 (diff)
downloadblackbird-op-linux-81b829655d418316f0707b3656b45cff7a1dbf12.tar.gz
blackbird-op-linux-81b829655d418316f0707b3656b45cff7a1dbf12.zip
nfsd4: simplify stateid generation code, fix wraparound
Follow the recommendation from rfc3530bis for stateid generation number wraparound, simplify some code, and fix or remove incorrect comments. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r--fs/nfsd/state.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h
index a06f55bd38b6..c425717715f6 100644
--- a/fs/nfsd/state.h
+++ b/fs/nfsd/state.h
@@ -293,6 +293,9 @@ static inline void
update_stateid(stateid_t *stateid)
{
stateid->si_generation++;
+ /* Wraparound recommendation from 3530bis-13 9.1.3.2: */
+ if (stateid->si_generation == 0)
+ stateid->si_generation = 1;
}
/* A reasonable value for REPLAY_ISIZE was estimated as follows:
OpenPOWER on IntegriCloud