aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfsd/nfs4state.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index f924f0618cb5..1f4b85b15125 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -1508,7 +1508,12 @@ unhash_session(struct nfsd4_session *ses)
1508static int 1508static int
1509STALE_CLIENTID(clientid_t *clid, struct nfsd_net *nn) 1509STALE_CLIENTID(clientid_t *clid, struct nfsd_net *nn)
1510{ 1510{
1511 if (clid->cl_boot == nn->boot_time) 1511 /*
1512 * We're assuming the clid was not given out from a boot
1513 * precisely 2^32 (about 136 years) before this one. That seems
1514 * a safe assumption:
1515 */
1516 if (clid->cl_boot == (u32)nn->boot_time)
1512 return 0; 1517 return 0;
1513 dprintk("NFSD stale clientid (%08x/%08x) boot_time %08lx\n", 1518 dprintk("NFSD stale clientid (%08x/%08x) boot_time %08lx\n",
1514 clid->cl_boot, clid->cl_id, nn->boot_time); 1519 clid->cl_boot, clid->cl_id, nn->boot_time);