switch nfsd_client_rmdir() to use of simple_recursive_removal()
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 3 Nov 2023 18:35:16 +0000 (14:35 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 18 Nov 2023 22:48:13 +0000 (17:48 -0500)
commitb7a14708aafeb12730ab23de8ecedd14f401a30c
tree2c9c019dc2ddb650414b8abab28dd8b007ad3894
parentb85ea95d086471afb4ad062012a4d73cd328fa86
switch nfsd_client_rmdir() to use of simple_recursive_removal()

nfsd_client_rmdir() open-codes a subset of simple_recursive_removal().
Conversion to calling simple_recursive_removal() allows to clean things
up quite a bit.

While we are at it, nfsdfs_create_files() doesn't need to mess with "pick
the reference to struct nfsdfs_client from the already created parent" -
the caller already knows it (that's where the parent got it from,
after all), so we might as well just pass it as an explicit argument.
So __get_nfsdfs_client() is only needed in get_nfsdfs_client() and
can be folded in there.

Incidentally, the locking in get_nfsdfs_client() is too heavy - we don't
need ->i_rwsem for that, ->i_lock serves just fine.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Tested-by: Jeff Layton <jlayton@kernel.org>
Acked-by: Chuck Lever <chuck.lever@oracle.com>
Acked-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/nfsd/nfsctl.c