mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 06:33:34 +00:00
nfsd: fix up the filecache laundrette scheduling
We don't really care whether there are hashed entries when it comes to scheduling the laundrette. They might all be non-gc entries, after all. We only want to schedule it if there are entries on the LRU. Switch to using list_lru_count, and move the check into nfsd_file_gc_worker. The other callsite in nfsd_file_put doesn't need to count entries, since it only schedules the laundrette after adding an entry to the LRU. Signed-off-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
8214118589
commit
22ae4c114f
@ -211,12 +211,9 @@ static const struct rhashtable_params nfsd_file_rhash_params = {
|
||||
static void
|
||||
nfsd_file_schedule_laundrette(void)
|
||||
{
|
||||
if ((atomic_read(&nfsd_file_rhash_tbl.nelems) == 0) ||
|
||||
test_bit(NFSD_FILE_CACHE_UP, &nfsd_file_flags) == 0)
|
||||
return;
|
||||
|
||||
queue_delayed_work(system_wq, &nfsd_filecache_laundrette,
|
||||
NFSD_LAUNDRETTE_DELAY);
|
||||
if (test_bit(NFSD_FILE_CACHE_UP, &nfsd_file_flags))
|
||||
queue_delayed_work(system_wq, &nfsd_filecache_laundrette,
|
||||
NFSD_LAUNDRETTE_DELAY);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -666,7 +663,8 @@ static void
|
||||
nfsd_file_gc_worker(struct work_struct *work)
|
||||
{
|
||||
nfsd_file_gc();
|
||||
nfsd_file_schedule_laundrette();
|
||||
if (list_lru_count(&nfsd_file_lru))
|
||||
nfsd_file_schedule_laundrette();
|
||||
}
|
||||
|
||||
static unsigned long
|
||||
|
Loading…
Reference in New Issue
Block a user