OSDN Git Service

nfsd: Schedule the laundrette regularly irrespective of file errors
authorTrond Myklebust <trondmy@gmail.com>
Mon, 6 Jan 2020 18:18:07 +0000 (13:18 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 22 Jan 2020 21:25:40 +0000 (16:25 -0500)
Emsure we schedule the laundrette even if the struct file is carrying
file errors.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/filecache.c

index 6b0ab43..4cef03a 100644 (file)
@@ -237,13 +237,6 @@ nfsd_file_check_write_error(struct nfsd_file *nf)
        return filemap_check_wb_err(file->f_mapping, READ_ONCE(file->f_wb_err));
 }
 
-static bool
-nfsd_file_in_use(struct nfsd_file *nf)
-{
-       return nfsd_file_check_writeback(nf) ||
-                       nfsd_file_check_write_error(nf);
-}
-
 static void
 nfsd_file_do_unhash(struct nfsd_file *nf)
 {
@@ -307,10 +300,9 @@ void
 nfsd_file_put(struct nfsd_file *nf)
 {
        bool is_hashed = test_bit(NFSD_FILE_HASHED, &nf->nf_flags) != 0;
-       bool unused = !nfsd_file_in_use(nf);
 
        set_bit(NFSD_FILE_REFERENCED, &nf->nf_flags);
-       if (nfsd_file_put_noref(nf) == 1 && is_hashed && unused)
+       if (nfsd_file_put_noref(nf) == 1 && is_hashed)
                nfsd_file_schedule_laundrette();
        if (atomic_long_read(&nfsd_filecache_count) >= NFSD_FILE_LRU_LIMIT)
                nfsd_file_gc();