]> git.baikalelectronics.ru Git - kernel.git/commit
gfs2: Don't sleep during glock hash walk
authorAndreas Gruenbacher <agruenba@redhat.com>
Wed, 10 Jun 2020 16:31:56 +0000 (18:31 +0200)
committerAndreas Gruenbacher <agruenba@redhat.com>
Tue, 30 Jun 2020 11:04:45 +0000 (13:04 +0200)
commit28203c11346b2a3d742ddc24ab96e455126d4596
tree137ff7207b0d91d4d6988d92605cfb2124bf7f62
parent000bb5df98e7f9850d18e986418e508d1b499209
gfs2: Don't sleep during glock hash walk

In flush_delete_work, instead of flushing each individual pending
delayed work item, cancel and re-queue them for immediate execution.
The waiting isn't needed here because we're already waiting for all
queued work items to complete in gfs2_flush_delete_work.  This makes the
code more efficient, but more importantly, it avoids sleeping during a
rhashtable walk, inside rcu_read_lock().

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/glock.c