Skip to content
  • Bob Peterson's avatar
    [GFS2] Ensure journal file cache is flushed after recovery · 75be73a8
    Bob Peterson authored
    
    
    This is for bugzilla bug #248176: GFS2: invalid metadata block
    
    Patches 1 thru 3 were accepted upstream, but there were problems
    with 4 and 5.  Those issues have been resolved and now the recovery
    tests are passing without errors.  This code has gone through
    41 * 3 successful gfs2 recovery tests before it hit an
    unrelated (openais) problem.  I'm continuing to test it.
    
    This is a complete rewrite of patch 5 for bug #248176, written by
    Steve Whitehouse.  This is referred to in the bugzilla record as
    "new 6" and "a different solution".
    
    The problem was that the journal inodes, although protected by
    a glock, were not synched with the other nodes because they don't
    use the inode glock synch operations (i.e. no "glops" were defined).
    Therefore, journal recovery on a journal-recovering node were causing
    the blocks to get out of sync with the node that was actually trying
    to use that journal as it comes back up from a reboot.
    
    There are two possible solutions: (1) To make the journals use the
    normal inode glock sync operations, or (2) To make the journal
    operations take effect immediately (i.e. no caching).  Although
    option 1 works, it turns out to be a lot more code.  Steve opted
    for option 2, which is much simpler and therefore less prone to
    regression errors.
    
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    
    --
    75be73a8