• NeilBrown's avatar
    md: close race between removing and adding a device. · a7a3f08d
    NeilBrown authored
    When we remove a device from an md array, the final removal of
    the "dev-XX" sys entry is run asynchronously.
    If we then re-add that device immediately before the worker thread
    gets to run, we can end up trying to add the "dev-XX" sysfs entry back
    before it has been removed.
    
    So in both places where we add a device, call
      flush_workqueue(md_misc_wq);
    before taking the md lock (as holding the md lock can prevent removal
    to complete).
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    a7a3f08d
md.c 222 KB