J. Bruce Fields
312155cfb1
nfsd: simplify nfsd4_change_info
...
[ Upstream commit b2140338d8dca827ad9e83f3e026e9d51748b265 ]
It doesn't make sense to carry all these extra fields around. Just
make everything into change attribute from the start.
This is just cleanup, there should be no change in behavior.
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:26 +01:00
J. Bruce Fields
f64589727b
nfsd: only call inode_query_iversion in the I_VERSION case
...
[ Upstream commit 70b87f77294d16d3e567056ba4c9ee2b091a5b50 ]
inode_query_iversion() can modify i_version. Depending on the exported
filesystem, that may not be safe. For example, if you're re-exporting
NFS, NFS stores the server's change attribute in i_version and does not
expect it to be modified locally. This has been observed causing
unnecessary cache invalidations.
The way a filesystem indicates that it's OK to call
inode_query_iverson() is by setting SB_I_VERSION.
So, move the I_VERSION check out of encode_change(), where it's used
only in GETATTR responses, to nfsd4_change_attribute(), which is
also called for pre- and post- operation attributes.
(Note we could also pull the NFSEXP_V4ROOT case into
nfsd4_change_attribute() as well. That would actually be a no-op,
since pre/post attrs are only used for metadata-modifying operations,
and V4ROOT exports are read-only. But we might make the change in
the future just for simplicity.)
Reported-by: Daire Byrne <daire@dneg.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:26 +01:00
Chuck Lever
ec57c3cb20
NFSD: Remove macros that are no longer used
...
[ Upstream commit 5cfc822f3e77b0477e6602d399116130317f537a ]
Now that all the NFSv4 decoder functions have been converted to
make direct calls to the xdr helpers, remove the unused C macros.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:26 +01:00
Chuck Lever
20457336e9
NFSD: Replace READ* macros in nfsd4_decode_compound()
...
[ Upstream commit d9b74bdac6f24afc3101b6a5b6f59842610c9c94 ]
And clean-up: Now that we have removed the DECODE_TAIL macro from
nfsd4_decode_compound(), we observe that there's no benefit for
nfsd4_decode_compound() to return nfs_ok or nfserr_bad_xdr only to
have its sole caller convert those values to one or zero,
respectively. Have nfsd4_decode_compound() return 1/0 instead.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
039c7707dc
NFSD: Make nfsd4_ops::opnum a u32
...
[ Upstream commit 3a237b4af5b7b0e77588e120554077cab3341943 ]
Avoid passing a "pointer to int" argument to xdr_stream_decode_u32.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
f01af13f07
NFSD: Replace READ* macros in nfsd4_decode_listxattrs()
...
[ Upstream commit 2212036cadf4da3c4b0e4bd2a9a8c3d78617ab4f ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
da7cebf4e0
NFSD: Replace READ* macros in nfsd4_decode_setxattr()
...
[ Upstream commit 403366a7e8e2930002157525cd44add7fa01bca9 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
737e6ad646
NFSD: Replace READ* macros in nfsd4_decode_xattr_name()
...
[ Upstream commit 830c71502ae0ae1677ac6c08ffbcf85a6e7b2937 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
913cc7fffd
NFSD: Replace READ* macros in nfsd4_decode_clone()
...
[ Upstream commit 3dfd0b0e15671e2b4047ccb9222432f0b2d930be ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
64d6f85ff2
NFSD: Replace READ* macros in nfsd4_decode_seek()
...
[ Upstream commit 9d32b412fe0a6186cc57789d218e8f8299454ae2 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
a63486680c
NFSD: Replace READ* macros in nfsd4_decode_offload_status()
...
[ Upstream commit 2846bb0525a73e00b3566fda535ea6a5879e2971 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
2253934928
NFSD: Replace READ* macros in nfsd4_decode_copy_notify()
...
[ Upstream commit f9a953fb369bbd2135ccead3393ec1ef66544471 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
6561031e79
NFSD: Replace READ* macros in nfsd4_decode_copy()
...
[ Upstream commit e8febea7190bcbd1e608093acb67f2a5009556aa ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
8315f841ec
NFSD: Replace READ* macros in nfsd4_decode_nl4_server()
...
[ Upstream commit f49e4b4d58cc835d8bd0cc9663f7b9c5497e0e7e ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
c9f85bc6fc
NFSD: Replace READ* macros in nfsd4_decode_fallocate()
...
[ Upstream commit 6aef27aaeae7611f98af08205acc79f5a8f3aa59 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
01d7b4526e
NFSD: Replace READ* macros in nfsd4_decode_reclaim_complete()
...
[ Upstream commit 0d6467844d437e07db1e76d96176b1a55401018c ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
109a0d206a
NFSD: Replace READ* macros in nfsd4_decode_destroy_clientid()
...
[ Upstream commit c95f2ec3490586cbb33badc8f4c82d6aa4955078 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
0518215d27
NFSD: Replace READ* macros in nfsd4_decode_test_stateid()
...
[ Upstream commit b7a0c8f6e741bf9dee0d24e69d3ce51fa4ccce78 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
61b880dbaf
NFSD: Replace READ* macros in nfsd4_decode_sequence()
...
[ Upstream commit cf907b11326d9360877d6c6ea8f75e1b29f39f2f ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
ea65b904b6
NFSD: Replace READ* macros in nfsd4_decode_secinfo_no_name()
...
[ Upstream commit 53d70873e37c09a582167ed73d1858e3a2af0157 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:25 +01:00
Chuck Lever
d84965af03
NFSD: Replace READ* macros in nfsd4_decode_layoutreturn()
...
[ Upstream commit 645fcad371420913c30e9aca80fc0a38f3acf432 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
9aae15ca48
NFSD: Replace READ* macros in nfsd4_decode_layoutget()
...
[ Upstream commit c8e88e3aa73889421461f878cd569ef84f231ceb ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
b4ae5eebd4
NFSD: Replace READ* macros in nfsd4_decode_layoutcommit()
...
[ Upstream commit 5185980d8a23001c2317c290129ab7ab20067e20 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
8f773fb898
NFSD: Replace READ* macros in nfsd4_decode_getdeviceinfo()
...
[ Upstream commit 044959715f370b24870c95df3940add8710c5a29 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
7a3ff0295c
NFSD: Replace READ* macros in nfsd4_decode_free_stateid()
...
[ Upstream commit aec387d5909304810d899f7d90ae57df33f3a75c ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
ae0730e8d9
NFSD: Replace READ* macros in nfsd4_decode_destroy_session()
...
[ Upstream commit 94e254af1f873b4b551db4c4549294f2c4d385ef ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
155c964221
NFSD: Replace READ* macros in nfsd4_decode_create_session()
...
[ Upstream commit 81243e3fe37ed547fc4ed8aab1cec2865540bb18 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
a445bf2a33
NFSD: Add a helper to decode channel_attrs4
...
[ Upstream commit 3a3f1fbacb0960b628e5a9f07c78287312f7a99d ]
De-duplicate some code.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
bda2edd08b
NFSD: Add a helper to decode nfs_impl_id4
...
[ Upstream commit 10ff84228197f47401833495ba19a50131323b4a ]
Refactor for clarity.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
c26952337e
NFSD: Add a helper to decode state_protect4_a
...
[ Upstream commit 523ec6ed6fb80fd1537d748a06bffd060a8b3235 ]
Refactor for clarity.
Also, remove a stale comment. Commit ed94164398c9 ("nfsd: implement
machine credential support for some operations") added support for
SP4_MACH_CRED, so state_protect_a is no longer completely ignored.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
39814dfd55
NFSD: Add a separate decoder for ssv_sp_parms
...
[ Upstream commit 547bfeb4cd8d491aabbd656d5a6f410cb4249b4e ]
Refactor for clarity.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
0316890507
NFSD: Add a separate decoder to handle state_protect_ops
...
[ Upstream commit 2548aa784d760567c2a77cbd8b7c55b211167c37 ]
Refactor for clarity and de-duplication of code.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
75e7eb55d1
NFSD: Replace READ* macros in nfsd4_decode_bind_conn_to_session()
...
[ Upstream commit 571e0451c4de0a545960ffaea16d969931afc563 ]
A dedicated sessionid4 decoder is introduced that will be used by
other operation decoders in subsequent patches.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
2f29d0b531
NFSD: Replace READ* macros in nfsd4_decode_backchannel_ctl()
...
[ Upstream commit 0f81d96098f8eb707afe2f8d5c3fe0f9316ef5ce ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
ae3ea82492
NFSD: Replace READ* macros in nfsd4_decode_cb_sec()
...
[ Upstream commit 1a99440807bfc66597aaa2e0f0213c319b023e34 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
783093b206
NFSD: Replace READ* macros in nfsd4_decode_release_lockowner()
...
[ Upstream commit a4a80c15ca4dd998ab5cbe87bd856c626a318a80 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:24 +01:00
Chuck Lever
844e52898c
NFSD: Replace READ* macros in nfsd4_decode_write()
...
[ Upstream commit 244e2befcba80f42c65293b6c56282bb78f9f417 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
2e01ced2a4
NFSD: Replace READ* macros in nfsd4_decode_verify()
...
[ Upstream commit 67cd453eeda86be90f83a0f4798f33832cf2d98c ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
b2b8186a6c
NFSD: Replace READ* macros in nfsd4_decode_setclientid_confirm()
...
[ Upstream commit d1ca55149d67e5896f89a30053f5d83c002ac10e ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
34132fb635
NFSD: Replace READ* macros in nfsd4_decode_setclientid()
...
[ Upstream commit 92fa6c08c251d52d0d7b46066ecf87b96a0c4b8f ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
24f75d3d2a
NFSD: Replace READ* macros in nfsd4_decode_setattr()
...
[ Upstream commit 44592fe9479d8d4b88594365ab825f7b07afdf7c ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
a9fde57f85
NFSD: Replace READ* macros in nfsd4_decode_secinfo()
...
[ Upstream commit d0abdae5191a916d767164f6fc6c0e2e814a20a7 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
4e3cc691f3
NFSD: Replace READ* macros in nfsd4_decode_renew()
...
[ Upstream commit d12f90458dc8c11734ba44ec88f109bf8de86ff0 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
b240d33402
NFSD: Replace READ* macros in nfsd4_decode_rename()
...
[ Upstream commit ba881a0a5342b3aaf83958901ebe3fe752eaab46 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
28de5567a6
NFSD: Replace READ* macros in nfsd4_decode_remove()
...
[ Upstream commit b7f5fbf219aecda98e32de305551e445f9438899 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
d13a153e28
NFSD: Replace READ* macros in nfsd4_decode_readdir()
...
[ Upstream commit 0dfaf2a371436860ace6af889e6cd8410ee63164 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
3de83d8c6c
NFSD: Replace READ* macros in nfsd4_decode_read()
...
[ Upstream commit 3909c3bc604688503e31ddceb429dc156c4720c1 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
e1de828f20
NFSD: Replace READ* macros in nfsd4_decode_putfh()
...
[ Upstream commit a73bed98413b1d9eb4466f776a56d2fde8b3b2c9 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
0ff3b1afe5
NFSD: Replace READ* macros in nfsd4_decode_open_downgrade()
...
[ Upstream commit dca71651f097ea608945d7a66bf62761a630de9a ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00
Chuck Lever
43e2862be3
NFSD: Replace READ* macros in nfsd4_decode_open_confirm()
...
[ Upstream commit 06bee693a1f1cb774b91000f05a6e183c257d8e9 ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:23 +01:00