[Bug 259071] Read past EoF in NFS client and fusefs

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 24 Oct 2021 01:42:44 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259071

Rick Macklem <rmacklem@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #228935|0                           |1
        is obsolete|                            |

--- Comment #6 from Rick Macklem <rmacklem@FreeBSD.org> ---
Created attachment 228973
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=228973&action=edit
timestamp file modifications so Lookup can discard stale attributes

Patch (attachment 228935) resulted in a sifnificant
increase in RPC counts during regression testing.

This patch uses timestamps as suggested by asomers@.
The NFS client VOP_SETATTR-of-Size/VOP_ALLOCATE/VOP_DEALLOCATE
save the time when the RPC has been completed in
the NFS vnode. Then Lookup takes the time when the RPC
is started and compares that time with the saved timestamp
in the NFS node to decide if the file attributes in the
Lookup reply might be stale and need to be discarded.

This patch does not result in an increase of RPC counts and
passes the test program (attachment #228584).

It does not handle any possible race between Lookup and
Write RPCs, since many of the Write RPCs happen after
VOP_WRITE() returns and the vnode is unlocked.
I am working on a separate patch for this case.

-- 
You are receiving this mail because:
You are the assignee for the bug.