]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
nfscl: Do not use nfso_own for delayed nfsrpc_doclose()
authorRick Macklem <rmacklem@FreeBSD.org>
Fri, 26 Apr 2024 03:58:21 +0000 (20:58 -0700)
committerRick Macklem <rmacklem@FreeBSD.org>
Fri, 26 Apr 2024 03:58:21 +0000 (20:58 -0700)
commit6251027c4252edb3b8f8fc359a40e610349e9af3
tree765ad5b6e16dd0a421e88932796a8729a3b10b69
parentf0e59ecff85d4b9e875464199e065a269c9c2530
nfscl: Do not use nfso_own for delayed nfsrpc_doclose()

When an initial attempt to close an NFSv4 lock returns NFSERR_DELAY,
the open structure is put on a list for delayed closing.  When this
is done, the nfso_own field is set to NULL, so it cannot be used by
nfsrpc_doclose().

Without this patch, the NFSv4 client can crash when a NFSv4 server
replies NFSERR_DELAY to a Close operation.  Fortunately, most extant
NFSv4 servers do not do this.  This patch avoids the crash for any
that do return NFSERR_DELAY for Close.

Found during a IETF bakeathon testing event this week.

MFC after: 5 days
sys/fs/nfsclient/nfs_clrpcops.c