gfs2: allow journal replay to hold sd_log_flush_lock
authorBob Peterson <rpeterso@redhat.com>
Mon, 17 Feb 2020 20:15:05 +0000 (14:15 -0600)
committerBob Peterson <rpeterso@redhat.com>
Thu, 27 Feb 2020 13:53:18 +0000 (07:53 -0600)
commitc9ebc4b737999ab1f3264c42431f7be80ac2efbf
tree018f1b3a5884c1c3be8cae99a19a3ec45dcbf0dc
parent019dd669bde14bc0748bc43af2f96e2c5e37d3f8
gfs2: allow journal replay to hold sd_log_flush_lock

Before this patch, journal replays could stomp on log flushes
and each other because both log flushes and journal replays used
the same sd_log_bio. Function gfs2_log_flush prevents other log
flushes from interfering by taking the sd_log_flush_lock rwsem
during the flush. However, it does not protect against journal
replays. This patch allows the journal replay to take the same
sd_log_flush_lock rwsem so use of the sd_log_bio is not stomped.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
fs/gfs2/recovery.c