NFSD: Revert setting op_encode_lockowner_maxsz
Subsystems (2)
RFC PATCH 3/4 NFSD: Revert setting op_encode_lockowner_maxsz
Commit 8c7424cff6 (nfsd4: don't try to encode conflicting owner if low on space) set op_encode_lockowner_maxsz to zero.
When testing nfsd4_lock with conflict lock (has right owner), dmesg gets
"[18668.241385] RPC request reserved 88 but used 108"
because xdr_reserve_space don't return NULL in nfsd4_encode_lock_denied.
Just revert op_encode_lockowner_maxsz.
--- fs/nfsd/nfs4proc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
fs/nfsd/nfs4proc.c +1 -2
@@ -1422,8 +1422,7 @@ out:#define op_encode_change_info_maxsz (5)#define nfs4_fattr_bitmap_maxsz (4) -/* We'll fall back on returning no lockowner if run out of space: */ -#define op_encode_lockowner_maxsz (0) +#define op_encode_lockowner_maxsz (1 + XDR_QUADLEN(IDMAP_NAMESZ))#define op_encode_lock_denied_maxsz (8 + op_encode_lockowner_maxsz)#define nfs4_owner_maxsz (1 + XDR_QUADLEN(IDMAP_NAMESZ))
Signature · 1 line
1.9.3
Quoted 8 lines · Kinglong Mee
Commit
8c7424cff6(nfsd4: don't try to encode conflicting owner if low on space) setop_encode_lockowner_maxszto zero.When testing
nfsd4_lockwith conflict lock (has right owner), dmesg gets
"[18668.241385] RPC request reserved 88 but used 108"
becausexdr_reserve_spacedon't return NULL innfsd4_encode_lock_denied.Just revert
op_encode_lockowner_maxsz.
Thanks for the bug report here and apologies for the slow response, I think this (and your more recent two patches) aren't the right fix, but just haven't had the chance to take a closer look--I'll look at it Monday. We probably need to get both a minimum and maximum size for some of these operations.
--b.
Quoted 23 lines
Signed-off-by Kinglong Mee <[email protected]>--- fs/nfsd/nfs4proc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)fs/nfsd/nfs4proc.c +1
-2@@ -1422,8 +1422,7 @@ out:#define op_encode_change_info_maxsz (5)#define nfs4_fattr_bitmap_maxsz (4) -/* We'll fall back on returning no lockowner if run out of space: */ -#define op_encode_lockowner_maxsz (0) +#define op_encode_lockowner_maxsz (1 + XDR_QUADLEN(IDMAP_NAMESZ))#define op_encode_lock_denied_maxsz (8 + op_encode_lockowner_maxsz)#define nfs4_owner_maxsz (1 + XDR_QUADLEN(IDMAP_NAMESZ))Signature · 1 line
1.9.3