• Bob Peterson's avatar
    gfs2: Abort gfs2_freeze if io error is seen · 52b1cdcb
    Bob Peterson authored
    Before this patch, an io error, such as -EIO writing to the journal
    would cause function gfs2_freeze to go into an infinite loop,
    continuously retrying the freeze operation. But nothing ever clears
    the -EIO except unmount after withdraw, which is impossible if the
    freeze operation never ends (fails). Instead you get:
    
    [ 6499.767994] gfs2: fsid=dm-32.0: error freezing FS: -5
    [ 6499.773058] gfs2: fsid=dm-32.0: retrying...
    [ 6500.791957] gfs2: fsid=dm-32.0: error freezing FS: -5
    [ 6500.797015] gfs2: fsid=dm-32.0: retrying...
    
    This patch adds a check for -EIO in gfs2_freeze, and if seen, it
    dequeues the freeze glock, aborts the loop and returns the error.
    Also, there's no need to pass the freeze holder to function
    gfs2_lock_fs_check_clean since it's only called in one place and
    it's a well-known superblock pointer, so this simplifies that.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    52b1cdcb
super.c 34.7 KB