mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
nfsd: Schedule the laundrette regularly irrespective of file errors
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>
This commit is contained in:
parent
bd6e1cece8
commit
55f84cc47f
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user