diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2021-12-30 16:26:18 +0100 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2022-01-08 20:42:02 +0100 |
commit | cdc556600c0133575487cc69fb3128440b3c3e92 (patch) | |
tree | 92edd125eee8a4d0e952ad936080a0b3b78fbcc2 /fs/nfsd | |
parent | nfsd: Add a tracepoint for errors in nfsd4_clone_file_range() (diff) | |
download | linux-cdc556600c0133575487cc69fb3128440b3c3e92.tar.xz linux-cdc556600c0133575487cc69fb3128440b3c3e92.zip |
NFSD: Write verifier might go backwards
When vfs_iter_write() starts to fail because a file system is full,
a bunch of writes can fail at once with ENOSPC. These writes
repeatedly invoke nfsd_reset_boot_verifier() in quick succession.
Ensure that the time it grabs doesn't go backwards due to an ntp
adjustment going on at the same time.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfssvc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c index 14c1ef6f8cc7..6eccf6700250 100644 --- a/fs/nfsd/nfssvc.c +++ b/fs/nfsd/nfssvc.c @@ -363,7 +363,7 @@ void nfsd_copy_boot_verifier(__be32 verf[2], struct nfsd_net *nn) static void nfsd_reset_boot_verifier_locked(struct nfsd_net *nn) { - ktime_get_real_ts64(&nn->nfssvc_boot); + ktime_get_raw_ts64(&nn->nfssvc_boot); } void nfsd_reset_boot_verifier(struct nfsd_net *nn) |