diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2007-11-19 20:31:04 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2008-02-01 16:42:05 -0500 |
commit | deda2faa8e71474c828d8eefc8bc0f19d02062ef (patch) | |
tree | 72344206dd12a189e466cde3b479d6dc5ae09843 /fs | |
parent | 49ba87811f34a0219dc7a373cd24aa68450f2058 (diff) | |
download | op-kernel-dev-deda2faa8e71474c828d8eefc8bc0f19d02062ef.zip op-kernel-dev-deda2faa8e71474c828d8eefc8bc0f19d02062ef.tar.gz |
nfsd: uniquify cl_confirm values
Using a counter instead of the nanoseconds value seems more likely to
produce a unique cl_confirm.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfsd/nfs4state.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 035e70a..9f6322e 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -491,15 +491,14 @@ gen_clid(struct nfs4_client *clp) { clp->cl_clientid.cl_id = current_clientid++; } -static void -gen_confirm(struct nfs4_client *clp) { - struct timespec tv; - u32 * p; +static void gen_confirm(struct nfs4_client *clp) +{ + static u32 i; + u32 *p; - tv = CURRENT_TIME; p = (u32 *)clp->cl_confirm.data; - *p++ = tv.tv_sec; - *p++ = tv.tv_nsec; + *p++ = get_seconds(); + *p++ = i++; } static int |