Skip to content

Commit

Permalink
GFS2: Don't flush delete workqueue when releasing the transaction lock
Browse files Browse the repository at this point in the history
There is no requirement to flush the delete workqueue before a
gfs2 filesystem is suspended. The workqueue's work will just
be suspended along with the rest of the tasks on the filesystem.

The resolves a deadlock situation where the transaction lock's
demotion code was trying to flush the delete workqueue while at
the same time, the workqueue was waiting for the transaction
lock.

The delete workqueue is flushed by gfs2_make_fs_ro() already, so
that umount/remount are correctly protected anyway.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
  • Loading branch information
Steven Whitehouse committed Dec 16, 2010
1 parent bcd7278 commit 846f404
Showing 1 changed file with 0 additions and 1 deletion.
1 change: 0 additions & 1 deletion fs/gfs2/glops.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,6 @@ static void trans_go_sync(struct gfs2_glock *gl)

if (gl->gl_state != LM_ST_UNLOCKED &&
test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) {
flush_workqueue(gfs2_delete_workqueue);
gfs2_meta_syncfs(sdp);
gfs2_log_shutdown(sdp);
}
Expand Down

0 comments on commit 846f404

Please sign in to comment.