• Heiko Carstens's avatar
    [PATCH] md multipathing fixes · 9c66cd06
    Heiko Carstens authored
    I tried to get multipathing failover running and failed. It seems to be
    that there are two bugs in multipath.c :
    
    - If a path/request fails mp_bh->path doesn't get updated to the new
      path.  Thus multipath_end_request will access a NULL pointer if a
      redirected request returns.
    
    - After fixing this I experienced several other errors.  First of all in
      bio->bi_flags the BIO_UPTODATE flag is not set when redirecting a
      request.
    
      Causing the md driver to think that every redirected request failed
      when it returns.  Since that alone didn't fix the problems, I simply
      copied the master_bio again and it looks like everything seems to work.
    
    Cc: <neilb@cse.unsw.edu.au>
    Cc: Jens Axboe <axboe@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    9c66cd06
multipath.c 13.7 KB