Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

nfsd: fix year-2038 nfs4 state problem

Someone with a weird time_t happened to notice this, it shouldn't really
manifest till 2038. It may not be our ownly year-2038 problem.

Reported-by: Aaron Pace <Aaron.Pace@alcatel-lucent.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>

+6 -1
+6 -1
fs/nfsd/nfs4state.c
··· 1508 1508 static int 1509 1509 STALE_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 1517 return 0; 1513 1518 dprintk("NFSD stale clientid (%08x/%08x) boot_time %08lx\n", 1514 1519 clid->cl_boot, clid->cl_id, nn->boot_time);