Re: [PATCH v2 1/2] nfsd: allow nfsd_file_get to sanely handle a NULL pointer
From: Chuck Lever III <chuck.lever@oracle.com>
Date: 2023-01-08 19:33:45
quoted hunk ↗ jump to hunk
On Jan 6, 2023, at 10:33 AM, Jeff Layton [off-list ref] wrote: ...and remove some now-useless NULL pointer checks in its callers. Suggested-by: NeilBrown <redacted> Signed-off-by: Jeff Layton <jlayton@kernel.org> --- fs/nfsd/filecache.c | 5 ++--- fs/nfsd/nfs4state.c | 4 +--- 2 files changed, 3 insertions(+), 6 deletions(-)diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c index 0ef070349014..58ac93e7e680 100644 --- a/fs/nfsd/filecache.c +++ b/fs/nfsd/filecache.c@@ -452,7 +452,7 @@ static bool nfsd_file_lru_remove(struct nfsd_file *nf)struct nfsd_file * 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 NULL; }@@ -1096,8 +1096,7 @@ nfsd_file_do_acquire(struct svc_rqst *rqstp, struct svc_fh *fhp,rcu_read_lock(); nf = rhashtable_lookup(&nfsd_file_rhash_tbl, &key, nfsd_file_rhash_params); - if (nf) - nf = nfsd_file_get(nf); + nf = nfsd_file_get(nf); rcu_read_unlock(); if (nf) {diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 4809ae0f0138..655fcfec0ace 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c@@ -602,9 +602,7 @@ put_nfs4_file(struct nfs4_file *fi)static struct nfsd_file * __nfs4_get_fd(struct nfs4_file *f, int oflag) { - if (f->fi_fds[oflag]) - return nfsd_file_get(f->fi_fds[oflag]); - return NULL; + return nfsd_file_get(f->fi_fds[oflag]); } static struct nfsd_file * -- 2.39.0
Hi Jeff- I've applied v2 of 1/2 and 2/2 to nfsd's for-next. -- Chuck Lever