• NeilBrown's avatar
    [PATCH] md: fix a plug/unplug race in raid5 · 7c785b7a
    NeilBrown authored
    When a device is unplugged, requests are moved from one or two (depending on
    whether a bitmap is in use) queues to the main request queue.
    
    So whenever requests are put on either of those queues, we should make sure
    the raid5 array is 'plugged'.  However we don't.  We currently plug the raid5
    queue just before putting requests on queues, so there is room for a race.  If
    something unplugs the queue at just the wrong time, requests will be left on
    the queue and nothing will want to unplug them.  Normally something else will
    plug and unplug the queue fairly soon, but there is a risk that nothing will.
    Signed-off-by: default avatarNeil Brown <neilb@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    7c785b7a
raid5.c 105 KB