Commit 70f62231 authored by Jeff Layton's avatar Jeff Layton Committed by Chuck Lever

nfsd: allow nfsd_file_get to sanely handle a NULL pointer

...and remove some now-useless NULL pointer checks in its callers.
Suggested-by: default avatarNeilBrown <neilb@suse.de>
Signed-off-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent df24ac7a
...@@ -452,7 +452,7 @@ static bool nfsd_file_lru_remove(struct nfsd_file *nf) ...@@ -452,7 +452,7 @@ static bool nfsd_file_lru_remove(struct nfsd_file *nf)
struct nfsd_file * struct nfsd_file *
nfsd_file_get(struct nfsd_file *nf) nfsd_file_get(struct nfsd_file *nf)
{ {
if (likely(refcount_inc_not_zero(&nf->nf_ref))) if (nf && refcount_inc_not_zero(&nf->nf_ref))
return nf; return nf;
return NULL; return NULL;
} }
...@@ -1107,8 +1107,7 @@ nfsd_file_do_acquire(struct svc_rqst *rqstp, struct svc_fh *fhp, ...@@ -1107,8 +1107,7 @@ nfsd_file_do_acquire(struct svc_rqst *rqstp, struct svc_fh *fhp,
rcu_read_lock(); rcu_read_lock();
nf = rhashtable_lookup(&nfsd_file_rhash_tbl, &key, nf = rhashtable_lookup(&nfsd_file_rhash_tbl, &key,
nfsd_file_rhash_params); nfsd_file_rhash_params);
if (nf) nf = nfsd_file_get(nf);
nf = nfsd_file_get(nf);
rcu_read_unlock(); rcu_read_unlock();
if (nf) { if (nf) {
......
...@@ -602,9 +602,7 @@ put_nfs4_file(struct nfs4_file *fi) ...@@ -602,9 +602,7 @@ put_nfs4_file(struct nfs4_file *fi)
static struct nfsd_file * static struct nfsd_file *
__nfs4_get_fd(struct nfs4_file *f, int oflag) __nfs4_get_fd(struct nfs4_file *f, int oflag)
{ {
if (f->fi_fds[oflag]) return nfsd_file_get(f->fi_fds[oflag]);
return nfsd_file_get(f->fi_fds[oflag]);
return NULL;
} }
static struct nfsd_file * static struct nfsd_file *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment