• Bob Peterson's avatar
    gfs2: Fix case in which ail writes are done to jdata holes · 4e79e3f0
    Bob Peterson authored
    Patch b2a846db ("gfs2: Ignore journal log writes for jdata holes")
    tried (unsuccessfully) to fix a case in which writes were done to jdata
    blocks, the blocks are sent to the ail list, then a punch_hole or truncate
    operation caused the blocks to be freed. In other words, the ail items
    are for jdata holes. Before b2a846db, the jdata hole caused function
    gfs2_block_map to return -EIO, which was eventually interpreted as an
    IO error to the journal, and then withdraw.
    
    This patch changes function gfs2_get_block_noalloc, which is only used
    for jdata writes, so it returns -ENODATA rather than -EIO, and when
    -ENODATA is returned to gfs2_ail1_start_one, the error is ignored.
    We can safely ignore it because gfs2_ail1_start_one is only called
    when the jdata pages have already been written and truncated, so the
    ail1 content no longer applies.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    4e79e3f0
aops.c 20.5 KB