• Guoqing Jiang's avatar
    md-cluster: show array's status more accurate · 0357ba27
    Guoqing Jiang authored
    When resync or recovery is happening in one node,
    other nodes don't show the appropriate info now.
    
    For example, when create an array in master node
    without "--assume-clean", then assemble the array
    in slave nodes, you can see "resync=PENDING" when
    read /proc/mdstat in slave nodes. However, the info
    is confusing since "PENDING" status is introduced
    for start array in read-only mode.
    
    We introduce RESYNCING_REMOTE flag to indicate that
    resync thread is running in remote node. The flags
    is set when node receive RESYNCING msg. And we clear
    the REMOTE flag in following cases:
    
    1. resync or recover is finished in master node,
       which means slaves receive msg with both lo
       and hi are set to 0.
    2. node continues resync/recovery in recover_bitmaps.
    3. when resync_finish is called.
    
    Then we show accurate information in status_resync
    by check REMOTE flags and with other conditions.
    Signed-off-by: default avatarGuoqing Jiang <gqjiang@suse.com>
    Reviewed-by: default avatarNeilBrown <neilb@suse.com>
    Signed-off-by: default avatarShaohua Li <shli@fb.com>
    0357ba27
md.h 25.9 KB