summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorNeilBrown <neil@brown.name>2026-07-17 19:27:52 +1000
committerChuck Lever <cel@kernel.org>2026-08-26 16:40:14 -0400
commitfa1ed1f333a80f69ecc9bfd78b1bc847a31b760c (patch)
tree19549f133cb04e3d189e9332fe59c8e79195d8fd /scripts
parent77f542cb3ca56ae8866fbeb607836815694c0fd4 (diff)
downloadlinux-next-fa1ed1f333a80f69ecc9bfd78b1bc847a31b760c.tar.gz
linux-next-fa1ed1f333a80f69ecc9bfd78b1bc847a31b760c.zip
nfsd: replace fh_fill_both_attrs() with fh_fill_post_noop()
fh_fill_both_attrs() is only needed for open/create and is used in the case when the target already existed so no creating happens. As part of refactoring this code it is changed to call fh_fill_pre_attrs() once early on (so errors only need to be caught in one place) and then to use a new fh_fill_post_noop() when it is determined that no creation happened. fh_fill_pre_attrs() now stores the attrs (which it had to get all of anyway)_ in ->fh_post_attr. fh_fill_post_noop() simply marks them as valid. fh_fill_post_attrs() replaces them. This change involves moving fh_fill_pre_attrs() out of the inode_lock on the directory. This means that we cannot provide "atomic" wcc data so a new fh_fill_pre_attrs_unlocked() is provided which marks the attrs as non-atomic. This is unfortunate but inevitable if we are ever to allow concurrent updates in a directory (which can significantly improve performance in some cases). To get atomic pre/post attributes we will need to be able to ask the fs to provide them, or to request a lease on the directory for the duration of an operation. Note that we haven't provided pre/post attrs on WRITE requests for a long time for exactly this reason - we cannot lock the file to get them. Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: NeilBrown <neil@brown.name> Link: https://patch.msgid.link/20260717093001.1972119-5-neilb@ownmail.net Signed-off-by: Chuck Lever <cel@kernel.org>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions