• S
    GFS2: Fix race in glock lru glock disposal · 94a09a39
    Steven Whitehouse 提交于
    We must not leave items on the LRU list with GLF_LOCK set, since
    they can be removed if the glock is brought back into use, which
    may then potentially result in a hang, waiting for GLF_LOCK to
    clear.
    
    It doesn't happen very often, since it requires a glock that has
    not been used for a long time to be brought back into use at the
    same moment that the shrinker is part way through disposing of
    glocks.
    
    The fix is to set GLF_LOCK at a later time, when we already know
    that the other locks can be obtained. Also, we now only release
    the lru_lock in case a resched is needed, rather than on every
    iteration.
    Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
    94a09a39
glock.c 52.2 KB