Merge tag 'nfsd-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
[sfrench/cifs-2.6.git] / fs / nfsd / filecache.c
index f172412447f5db2d2b123f6efdf94ac5aa60bc3a..9cb2d590c0361b80fb4531e0b634d78ac6fd7600 100644 (file)
@@ -309,11 +309,12 @@ nfsd_file_put(struct nfsd_file *nf)
        if (test_bit(NFSD_FILE_HASHED, &nf->nf_flags) == 0) {
                nfsd_file_flush(nf);
                nfsd_file_put_noref(nf);
-       } else {
+       } else if (nf->nf_file) {
                nfsd_file_put_noref(nf);
-               if (nf->nf_file)
-                       nfsd_file_schedule_laundrette();
-       }
+               nfsd_file_schedule_laundrette();
+       } else
+               nfsd_file_put_noref(nf);
+
        if (atomic_long_read(&nfsd_filecache_count) >= NFSD_FILE_LRU_LIMIT)
                nfsd_file_gc();
 }