At this point, we have a new nf that we couldn't properly insert into the hashtable. Just free it before retrying, since it was never hashed. Fixes: c6593366c0bf ("nfsd: don't kill nfsd_files because of lease break error") Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> --- fs/nfsd/filecache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c index f84913691b78..4fb5e8546831 100644 --- a/fs/nfsd/filecache.c +++ b/fs/nfsd/filecache.c @@ -1038,8 +1038,10 @@ nfsd_file_do_acquire(struct svc_rqst *rqstp, struct svc_fh *fhp, if (likely(ret == 0)) goto open_file; - if (ret == -EEXIST) + if (ret == -EEXIST) { + nfsd_file_free(nf); goto retry; + } trace_nfsd_file_insert_err(rqstp, inode, may_flags, ret); status = nfserr_jukebox; goto construction_err; -- 2.45.2