Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

NFSD: use per-operation statidx for callback procedures

The callback RPC procedure table uses NFSPROC4_CB_##call for
p_statidx, which maps CB_NULL to index 0 and every
compound-based callback (CB_RECALL, CB_LAYOUT, CB_OFFLOAD,
etc.) to index 1. All compound callback operations therefore
share a single statistics counter, making per-operation
accounting impossible.

Assign p_statidx from the NFSPROC4_CLNT_##proc enum instead,
giving each callback operation its own counter slot. The
counts array is already sized by ARRAY_SIZE(nfs4_cb_procedures),
so no allocation change is needed.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

+1 -1
+1 -1
fs/nfsd/nfs4callback.c
··· 1016 1016 .p_decode = nfs4_xdr_dec_##restype, \ 1017 1017 .p_arglen = NFS4_enc_##argtype##_sz, \ 1018 1018 .p_replen = NFS4_dec_##restype##_sz, \ 1019 - .p_statidx = NFSPROC4_CB_##call, \ 1019 + .p_statidx = NFSPROC4_CLNT_##proc, \ 1020 1020 .p_name = #proc, \ 1021 1021 } 1022 1022