mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 00:20:32 +00:00
[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 <swhiteho@redhat.com> Cc: Wendy Cheng <wcheng@redhat.com>
This commit is contained in:
parent
891ba6d4a5
commit
5a60c532c9
1 changed files with 2 additions and 1 deletions
|
@ -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)
|
static void gfs2_fake_write_endio(struct buffer_head *bh, int uptodate)
|
||||||
{
|
{
|
||||||
struct buffer_head *real_bh = bh->b_private;
|
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);
|
end_buffer_write_sync(bh, uptodate);
|
||||||
free_buffer_head(bh);
|
free_buffer_head(bh);
|
||||||
|
|
Loading…
Reference in a new issue