995246 Commits

Author SHA1 Message Date
J. Bruce Fields
f8032b859d 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-06-21 14:52:45 +02:00
Chuck Lever
3aea16e6b7 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-06-21 14:52:45 +02:00
Chuck Lever
b24e6a40ee 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-06-21 14:52:44 +02:00
Chuck Lever
6b48808835 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-06-21 14:52:44 +02:00
Chuck Lever
c2d0c16990 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-06-21 14:52:44 +02:00
Chuck Lever
8e1b8a78a9 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-06-21 14:52:44 +02:00
Chuck Lever
9bc67df0f9 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-06-21 14:52:44 +02:00
Chuck Lever
b719fc9375 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-06-21 14:52:44 +02:00
Chuck Lever
a2f6c16ad1 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-06-21 14:52:44 +02:00
Chuck Lever
f8eb5424e3 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-06-21 14:52:44 +02:00
Chuck Lever
c2d2a919b2 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-06-21 14:52:43 +02:00
Chuck Lever
8604d294c1 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-06-21 14:52:43 +02:00
Chuck Lever
dc1a31ca8e 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-06-21 14:52:43 +02:00
Chuck Lever
a0b8dabc59 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-06-21 14:52:43 +02:00
Chuck Lever
de0dc37a79 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-06-21 14:52:43 +02:00
Chuck Lever
093f9d2c8f 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-06-21 14:52:43 +02:00
Chuck Lever
7675420fde 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-06-21 14:52:43 +02:00
Chuck Lever
f0de0b6895 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-06-21 14:52:42 +02:00
Chuck Lever
1ea743dc48 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-06-21 14:52:42 +02:00
Chuck Lever
b63e313dce 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-06-21 14:52:42 +02:00
Chuck Lever
40e627c502 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-06-21 14:52:42 +02:00
Chuck Lever
40770a0f8e 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-06-21 14:52:42 +02:00
Chuck Lever
c0a4c4e46b 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-06-21 14:52:42 +02:00
Chuck Lever
5f892c1178 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-06-21 14:52:42 +02:00
Chuck Lever
92ae309a99 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-06-21 14:52:42 +02:00
Chuck Lever
73684a8118 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-06-21 14:52:41 +02:00
Chuck Lever
2bd9ef494a 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-06-21 14:52:41 +02:00
Chuck Lever
d01f41320d 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-06-21 14:52:41 +02:00
Chuck Lever
d50a76f1f3 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-06-21 14:52:41 +02:00
Chuck Lever
0c935af3cf 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-06-21 14:52:41 +02:00
Chuck Lever
cb568dbdef 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-06-21 14:52:41 +02:00
Chuck Lever
b736338042 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-06-21 14:52:41 +02:00
Chuck Lever
7d21084074 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-06-21 14:52:41 +02:00
Chuck Lever
5658ca0651 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-06-21 14:52:40 +02:00
Chuck Lever
79f1a8323a 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-06-21 14:52:40 +02:00
Chuck Lever
eeab2f3bf2 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-06-21 14:52:40 +02:00
Chuck Lever
b1af8f131e 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-06-21 14:52:40 +02:00
Chuck Lever
19a4c05e81 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-06-21 14:52:40 +02:00
Chuck Lever
2503dcf0f6 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-06-21 14:52:40 +02:00
Chuck Lever
7c06ba5c8b 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-06-21 14:52:40 +02:00
Chuck Lever
5277d60346 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-06-21 14:52:39 +02:00
Chuck Lever
2cef1009f8 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-06-21 14:52:39 +02:00
Chuck Lever
e2b287a53c 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-06-21 14:52:39 +02:00
Chuck Lever
274b8f0597 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-06-21 14:52:39 +02:00
Chuck Lever
c24e2a4943 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-06-21 14:52:39 +02:00
Chuck Lever
d0a0219a35 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-06-21 14:52:39 +02:00
Chuck Lever
4b28cd7e83 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-06-21 14:52:39 +02:00
Chuck Lever
ad1ea32c97 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-06-21 14:52:39 +02:00
Chuck Lever
e557a2eabb 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-06-21 14:52:38 +02:00
Chuck Lever
f6eb911d79 NFSD: Replace READ* macros in nfsd4_decode_open()
[ Upstream commit 61e5e0b3ec713d1365008c8af3fe5fdd262e2a60 ]

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-06-21 14:52:38 +02:00