[GFS2] Fix lock ordering bug in page fault path
Mmapped files were able to trigger a lock ordering bug. Private maps do not need to take the glock so early on. Shared maps do unfortunately, however we can get around that by adding a flag into the flags for the struct gfs2_file. This only works because we are taking an exclusive lock at this point, so we know that nobody else can be racing with us. Fixes Red Hat bugzilla: #201196 Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
@@ -256,8 +256,8 @@ static unsigned int current_tail(struct gfs2_sbd *sdp)
|
||||
if (list_empty(&sdp->sd_ail1_list))
|
||||
tail = sdp->sd_log_head;
|
||||
else {
|
||||
ai = list_entry(sdp->sd_ail1_list.prev,
|
||||
struct gfs2_ail, ai_list);
|
||||
ai = list_entry(sdp->sd_ail1_list.prev, struct gfs2_ail,
|
||||
ai_list);
|
||||
tail = ai->ai_first;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user