2018-03-23 11:37:17

by Dan Carpenter

[permalink] [raw]
Subject: [PATCH] nfsd: tidy return values in nfs4_delegation_exists()

We made nfs4_delegation_exists() return a bool in 68b18f52947b ("nfsd:
make nfs4_get_existing_delegation less confusing"), but it's still
returning -EINVAL. That's fine, because it -EINVAL becomes true which
is what we want, but it's not very tidy.

Signed-off-by: Dan Carpenter <[email protected]>

diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index a64ee08aadb2..f0b5af3ca8f7 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -935,10 +935,10 @@ nfs4_delegation_exists(struct nfs4_client *clp, struct nfs4_file *fp)
list_for_each_entry(searchdp, &fp->fi_delegations, dl_perfile) {
searchclp = searchdp->dl_stid.sc_client;
if (clp == searchclp) {
- return -EAGAIN;
+ return true;
}
}
- return 0;
+ return false;
}

/**


2018-03-23 18:50:13

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] nfsd: tidy return values in nfs4_delegation_exists()

On Fri, Mar 23, 2018 at 02:37:05PM +0300, Dan Carpenter wrote:
> We made nfs4_delegation_exists() return a bool in 68b18f52947b ("nfsd:
> make nfs4_get_existing_delegation less confusing"), but it's still
> returning -EINVAL. That's fine, because it -EINVAL becomes true which
> is what we want, but it's not very tidy.

Oops, I fixed this a couple days ago when Fengguang Wu complained about
the 0/false thing, but forgot to push it out. Added a Reported-by: for
you and pushed it out now to

git://linux-nfs.org/~bfields/linux.git nfsd-next

--b.

>
> Signed-off-by: Dan Carpenter <[email protected]>
>
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index a64ee08aadb2..f0b5af3ca8f7 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -935,10 +935,10 @@ nfs4_delegation_exists(struct nfs4_client *clp, struct nfs4_file *fp)
> list_for_each_entry(searchdp, &fp->fi_delegations, dl_perfile) {
> searchclp = searchdp->dl_stid.sc_client;
> if (clp == searchclp) {
> - return -EAGAIN;
> + return true;
> }
> }
> - return 0;
> + return false;
> }
>
> /**