diff options
author | NeilBrown <neilb@suse.de> | 2024-08-29 01:06:28 +0200 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2024-08-30 16:48:29 +0200 |
commit | 40927f3d0972bf86357a32a5749be71a551241b6 (patch) | |
tree | a3976040195a7c51a63109716348d3709e6da840 /crypto/dh.c | |
parent | fs/nfsd: fix update of inode attrs in CB_GETATTR (diff) | |
download | linux-40927f3d0972bf86357a32a5749be71a551241b6.tar.xz linux-40927f3d0972bf86357a32a5749be71a551241b6.zip |
nfsd: fix nfsd4_deleg_getattr_conflict in presence of third party lease
It is not safe to dereference fl->c.flc_owner without first confirming
fl->fl_lmops is the expected manager. nfsd4_deleg_getattr_conflict()
tests fl_lmops but largely ignores the result and assumes that flc_owner
is an nfs4_delegation anyway. This is wrong.
With this patch we restore the "!= &nfsd_lease_mng_ops" case to behave
as it did before the change mentioned below. This is the same as the
current code, but without any reference to a possible delegation.
Fixes: c5967721e106 ("NFSD: handle GETATTR conflict with write delegation")
Signed-off-by: NeilBrown <neilb@suse.de>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'crypto/dh.c')
0 files changed, 0 insertions, 0 deletions