• A
    md: don't print the same repeated messages about delayed sync operation · c622ca54
    Artur Paszkiewicz 提交于
    This fixes a long-standing bug that caused a flood of messages like:
    "md: delaying data-check of md1 until md2 has finished (they share one
    or more physical units)"
    
    It can be reproduced like this:
    1. Create at least 3 raid1 arrays on a pair of disks, each on different
       partitions.
    2. Request a sync operation like 'check' or 'repair' on 2 arrays by
       writing to their md/sync_action attribute files. One operation should
       start and one should be delayed and a message like the above will be
       printed.
    3. Issue a write to the third array. Each write will cause 2 copies of
       the message to be printed.
    
    This happens when wake_up(&resync_wait) is called, usually by
    md_check_recovery(). Then the delayed sync thread again prints the
    message and is put to sleep. This patch adds a check in md_do_sync() to
    prevent printing this message more than once for the same pair of
    devices.
    Reported-by: NSven Koehler <sven.koehler@gmail.com>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=151801Signed-off-by: NArtur Paszkiewicz <artur.paszkiewicz@intel.com>
    Signed-off-by: NShaohua Li <shli@fb.com>
    c622ca54
md.c 231.9 KB