From: Steven Whitehouse Date: Wed, 26 Sep 2007 08:39:31 +0000 (+0100) Subject: [GFS2] Get superblock a different way X-Git-Tag: firefly_0821_release~26021^2~2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5a60c532c9224babc172fafccc9e2fec6937af6f;p=firefly-linux-kernel-4.4.55.git [GFS2] Get superblock a different way The mapping may be NULL by the time the I/O has completed, so we now get the superblock by a different route (via the bd and glock) to avoid this problem. Signed-off-by: Steven Whitehouse Cc: Wendy Cheng --- diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c index ee704676b2f1..7df702473252 100644 --- a/fs/gfs2/log.c +++ b/fs/gfs2/log.c @@ -513,7 +513,8 @@ struct buffer_head *gfs2_log_get_buf(struct gfs2_sbd *sdp) static void gfs2_fake_write_endio(struct buffer_head *bh, int uptodate) { struct buffer_head *real_bh = bh->b_private; - struct gfs2_sbd *sdp = GFS2_SB(real_bh->b_page->mapping->host); + struct gfs2_bufdata *bd = real_bh->b_private; + struct gfs2_sbd *sdp = bd->bd_gl->gl_sbd; end_buffer_write_sync(bh, uptodate); free_buffer_head(bh);