Commit graph

3871 commits

Author SHA1 Message Date
Chuck Lever
9efc217f6d lockd: Update the NLMv4 FREE_ALL arguments decoder to use struct xdr_stream
[ Upstream commit 3049e974a7c7cfa0c15fb807f4a3e75b2ab8517a ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
e7909b9ba1 lockd: Update the NLMv4 SHARE arguments decoder to use struct xdr_stream
[ Upstream commit 7cf96b6d0104b12aa30961901879e428884b1695 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
d64fab4a41 lockd: Update the NLMv4 SM_NOTIFY arguments decoder to use struct xdr_stream
[ Upstream commit bc3665fd718b325cfff3abd383b00d1a87e028dc ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
98c69a73a9 lockd: Update the NLMv4 nlm_res arguments decoder to use struct xdr_stream
[ Upstream commit b4c24b5a41da63e5f3a9b6ea56cbe2a1efe49579 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
3a3447b4d4 lockd: Update the NLMv4 UNLOCK arguments decoder to use struct xdr_stream
[ Upstream commit d76d8c25cea794f65615f3a2324052afa4b5f900 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
0a70771ee5 lockd: Update the NLMv4 CANCEL arguments decoder to use struct xdr_stream
[ Upstream commit 1e1f38dcf3c031715191e1fd26f70a0affca4dbd ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
0c7253b792 lockd: Update the NLMv4 LOCK arguments decoder to use struct xdr_stream
[ Upstream commit 0e5977af4fdc277984fca7d8c2e0c880935775a0 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
01b5a81a2f lockd: Update the NLMv4 TEST arguments decoder to use struct xdr_stream
[ Upstream commit 345b4159a075b15dc4ae70f1db90fa8abf85d2e7 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
432fe02785 lockd: Update the NLMv4 void arguments decoder to use struct xdr_stream
[ Upstream commit 7956521aac58e434a05cf3c68c1b66c1312e5649 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
7c97e91c80 lockd: Update the NLMv1 SHARE results encoder to use struct xdr_stream
[ Upstream commit 529ca3a116e8978575fec061a71fa6865a344891 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:41 +01:00
Chuck Lever
3036deaa22 lockd: Update the NLMv1 nlm_res results encoder to use struct xdr_stream
[ Upstream commit e96735a6980574ecbdb24c760b8d294095e47074 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
dd82c4f837 lockd: Update the NLMv1 TEST results encoder to use struct xdr_stream
[ Upstream commit adf98a4850b9ede9fc174c78a885845fb08499a5 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
f1e34fbfa2 lockd: Update the NLMv1 void results encoder to use struct xdr_stream
[ Upstream commit e26ec898b68b2ab64f379ba0fc0a615b2ad41f40 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
ebeaf81143 lockd: Update the NLMv1 FREE_ALL arguments decoder to use struct xdr_stream
[ Upstream commit 14e105256b9dcdf50a003e2e9a0da77e06770a4b ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
ac378d8d5f lockd: Update the NLMv1 SHARE arguments decoder to use struct xdr_stream
[ Upstream commit 890939e1266b9adf3b0acd5e0385b39813cb8f11 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
fc3b37fbbd lockd: Update the NLMv1 SM_NOTIFY arguments decoder to use struct xdr_stream
[ Upstream commit 137e05e2f735f696e117553f7fa5ef8fb09953e1 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
c05b62d68f lockd: Update the NLMv1 nlm_res arguments decoder to use struct xdr_stream
[ Upstream commit 16ddcabe6240c4fb01c97f6fce6c35ddf8626ad5 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
b0d089d78b lockd: Update the NLMv1 UNLOCK arguments decoder to use struct xdr_stream
[ Upstream commit c27045d302b022ed11d24a2653bceb6af56c6327 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
fb92cd7425 lockd: Update the NLMv1 CANCEL arguments decoder to use struct xdr_stream
[ Upstream commit f4e08f3ac8c4945ea54a740e3afcf44b34e7cf44 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
ec3aa50274 lockd: Update the NLMv1 LOCK arguments decoder to use struct xdr_stream
[ Upstream commit c1adb8c672ca2b085c400695ef064547d77eda29 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
057a92ab02 lockd: Update the NLMv1 TEST arguments decoder to use struct xdr_stream
[ Upstream commit 2fd0c67aabcf0f8821450b00ee511faa0b7761bf ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
6d05ff7c33 lockd: Update the NLMv1 void argument decoder to use struct xdr_stream
[ Upstream commit cc1029b51273da5b342683e9ae14ab4eeaa15997 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
7c020722b0 lockd: Common NLM XDR helpers
[ Upstream commit a6a63ca5652ea05637ecfe349f9e895031529556 ]

Add a .h file containing xdr_stream-based XDR helpers common to both
NLMv3 and NLMv4.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
e9f6e2f26c lockd: Create a simplified .vs_dispatch method for NLM requests
[ Upstream commit a9ad1a8090f58b2ed1774dd0f4c7cdb8210a3793 ]

To enable xdr_stream-based encoding and decoding, create a bespoke
RPC dispatch function for the lockd service.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:40 +01:00
Chuck Lever
1d36883d3f lockd: Remove stale comments
[ Upstream commit 99cdf57b33e68df7afc876739c93a11f0b1ba807 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
J. Bruce Fields
9935fcf5ca nfsd: rpc_peeraddr2str needs rcu lock
[ Upstream commit 05570a2b01117209b500e1989ce8f1b0524c489f ]

I'm not even sure cl_xprt can change here, but we're getting "suspicious
RCU usage" warnings, and other rpc_peeraddr2str callers are taking the
rcu lock.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Wei Yongjun
8a027a1cdd NFSD: Fix error return code in nfsd4_interssc_connect()
[ Upstream commit 54185267e1fe476875e649bb18e1c4254c123305 ]

'status' has been overwritten to 0 after nfsd4_ssc_setup_dul(), this
cause 0 will be return in vfs_kern_mount() error case. Fix to return
nfserr_nodev in this error.

Fixes: f4e44b393389 ("NFSD: delay unmount source's export after inter-server copy completed.")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Dai Ngo
75d6ba16a7 nfsd: fix kernel test robot warning in SSC code
[ Upstream commit f47dc2d3013c65631bf8903becc7d88dc9d9966e ]

Fix by initializing pointer nfsd4_ssc_umount_item with NULL instead of 0.
Replace return value of nfsd4_ssc_setup_dul with __be32 instead of int.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Dai Ngo <dai.ngo@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Dave Wysochanski
3efb25e516 nfsd4: Expose the callback address and state of each NFS4 client
[ Upstream commit 3518c8666f15cdd5d38878005dab1d589add1c19 ]

In addition to the client's address, display the callback channel
state and address in the 'info' file.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
J. Bruce Fields
652addab0d nfsd: move fsnotify on client creation outside spinlock
[ Upstream commit 934bd07fae7e55232845f909f78873ab8678ca74 ]

This was causing a "sleeping function called from invalid context"
warning.

I don't think we need the set_and_test_bit() here; clients move from
unconfirmed to confirmed only once, under the client_lock.

The (conf == unconf) is a way to check whether we're in that confirming
case, hopefully that's not too obscure.

Fixes: 472d155a0631 "nfsd: report client confirmation status in "info" file"
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Dai Ngo
f4a7792d92 NFSD: delay unmount source's export after inter-server copy completed.
[ Upstream commit f4e44b393389c77958f7c58bf4415032b4cda15b ]

Currently the source's export is mounted and unmounted on every
inter-server copy operation. This patch is an enhancement to delay
the unmount of the source export for a certain period of time to
eliminate the mount and unmount overhead on subsequent copy operations.

After a copy operation completes, a work entry is added to the
delayed unmount list with an expiration time. This list is serviced
by the laundromat thread to unmount the export of the expired entries.
Each time the export is being used again, its expiration time is
extended and the entry is re-inserted to the tail of the list.

The unmount task and the mount operation of the copy request are
synced to make sure the export is not unmounted while it's being
used.

Signed-off-by: Dai Ngo <dai.ngo@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Olga Kornievskaia
a16b967eeb NFSD add vfs_fsync after async copy is done
[ Upstream commit eac0b17a77fbd763d305a5eaa4fd1119e5a0fe0d ]

Currently, the server does all copies as NFS_UNSTABLE. For synchronous
copies linux client will append a COMMIT to the COPY compound but for
async copies it does not (because COMMIT needs to be done after all
bytes are copied and not as a reply to the COPY operation).

However, in order to save the client doing a COMMIT as a separate
rpc, the server can reply back with NFS_FILE_SYNC copy. This patch
proposed to add vfs_fsync() call at the end of the async copy.

Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
[ cel: adjusted to apply to v5.10.y ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
J. Bruce Fields
190791ed65 nfsd: move some commit_metadata()s outside the inode lock
[ Upstream commit eeeadbb9bd5652c47bb9b31aa9ad8b4f1b4aa8b3 ]

The commit may be time-consuming and there's no need to hold the lock
for it.

More of these are possible, these were just some easy ones.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Yu Hsiang Huang
02f6e67810 nfsd: Prevent truncation of an unlinked inode from blocking access to its directory
[ Upstream commit e5d74a2d0ee67ae00edad43c3d7811016e4d2e21 ]

Truncation of an unlinked inode may take a long time for I/O waiting, and
it doesn't have to prevent access to the directory. Thus, let truncation
occur outside the directory's mutex, just like do_unlinkat() does.

Signed-off-by: Yu Hsiang Huang <nickhuang@synology.com>
Signed-off-by: Bing Jing Chang <bingjingc@synology.com>
Signed-off-by: Robbie Ko <robbieko@synology.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Chuck Lever
4f3aff65b1 NFSD: Update nfsd_cb_args tracepoint
[ Upstream commit d6cbe98ff32aef795462a309ef048cfb89d1a11d ]

Clean-up: Re-order the display of IP address and client ID to be
consistent with other _cb_ tracepoints.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Chuck Lever
21a57c2f16 NFSD: Remove the nfsd_cb_work and nfsd_cb_done tracepoints
[ Upstream commit 1d2bf65983a137121c165a7e69b2885572954915 ]

Clean up: These are noise in properly working systems. If you really
need to observe the operation of the callback mechanism, use the
sunrpc:rpc\* tracepoints along with the workqueue tracepoints.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Chuck Lever
ce5b89fe58 NFSD: Add an nfsd_cb_probe tracepoint
[ Upstream commit 4ade892ae1c35527584decb7fa026553d53cd03f ]

Record a tracepoint event when the server performs a callback
probe. This event can be enabled as a group with other nfsd_cb
tracepoints.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Chuck Lever
d30270a838 NFSD: Replace the nfsd_deleg_break tracepoint
[ Upstream commit 17d76ddf76e4972411402743eea7243d9a46f4f9 ]

Renamed so it can be enabled as a set with the other nfsd_cb_
tracepoints. And, consistent with those tracepoints, report the
address of the client, the client ID the server has given it, and
the state ID being recalled.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Chuck Lever
5f0d40e784 NFSD: Add an nfsd_cb_offload tracepoint
[ Upstream commit 87512386e951ee28ba2e7ef32b843ac97621d371 ]

Record the arguments of CB_OFFLOAD callbacks so we can better
observe asynchronous copy-offload behavior. For example:

nfsd-995   [008]  7721.934222: nfsd_cb_offload:
        addr=192.168.2.51:0 client 6092a47c:35a43fc1 fh_hash=0x8739113a
        count=116528 status=0

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: Olga Kornievskaia <kolga@netapp.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Chuck Lever
47d854e310 NFSD: Add an nfsd_cb_lm_notify tracepoint
[ Upstream commit 2cde7f8118f0fea29ad73ddcf28817f95adeffd5 ]

When the server kicks off a CB_LM_NOTIFY callback, record its
arguments so we can better observe asynchronous locking behavior.
For example:

            nfsd-998   [002]  1471.705873: nfsd_cb_notify_lock:  addr=192.168.2.51:0 client 6092a47c:35a43fc1 fh_hash=0x8950b23a

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:39 +01:00
Chuck Lever
e2c07c8d19 NFSD: Enhance the nfsd_cb_setup tracepoint
[ Upstream commit 9f57c6062bf3ce2c6ab9ba60040b34e8134ef259 ]

Display the transport protocol and authentication flavor so admins
can see what they might be getting wrong.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
953f27e883 NFSD: Adjust cb_shutdown tracepoint
[ Upstream commit b200f0e35338b052976b6c5759e4f77a3013e6f6 ]

Show when the upper layer requested a shutdown. RPC tracepoints can
already show when rpc_shutdown_client() is called.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
47216d4b17 NFSD: Add cb_lost tracepoint
[ Upstream commit 806d65b617d89be887fe68bfa051f78143669cd7 ]

Provide more clarity about when the callback channel is in trouble.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
35b4c30da2 NFSD: Drop TRACE_DEFINE_ENUM for NFSD4_CB_<state> macros
[ Upstream commit 167145cc64ce4b4b177e636829909a6b14004f9e ]

TRACE_DEFINE_ENUM() is necessary for enum {} but not for C macros.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
5ae862353c NFSD: Capture every CB state transition
[ Upstream commit 8476c69a7fa0f1f9705ec0caa4e97c08b5045779 ]

We were missing one.

As a clean-up, add a helper that sets the new CB state and fires
a tracepoint. The tracepoint fires only when the state changes, to
help reduce trace log noise.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
f2833e384b NFSD: Constify @fh argument of knfsd_fh_hash()
[ Upstream commit 1736aec82a15cb5d4b3bbe0b2fbae0ede66b1a1a ]

Enable knfsd_fh_hash() to be invoked in functions where the
filehandle pointer is a const.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
200d50eba7 NFSD: Add tracepoints for EXCHANGEID edge cases
[ Upstream commit e8f80c5545ec5794644b48537449e48b009d608d ]

Some of the most common cases are traced. Enough infrastructure is
now in place that more can be added later, as needed.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
2671246be9 NFSD: Add tracepoints for SETCLIENTID edge cases
[ Upstream commit 237f91c85acef206a33bc02f3c4e856128fd7994 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
0eb39833be NFSD: Add a couple more nfsd_clid_expired call sites
[ Upstream commit 2958d2ee71021b6c44212ec6c2a39cc71d9cd4a9 ]

Improve observation of NFSv4 lease expiry.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
[ cel: adjusted to apply to v5.10.y ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00
Chuck Lever
82c0215496 NFSD: Add nfsd_clid_destroyed tracepoint
[ Upstream commit c41a9b7a906fb872f8b2b1a34d2a1d5ef7f94adb ]

Record client-requested termination of client IDs.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:38 +01:00