[PATCH] Re: md multipath corruption in 2.4.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2005-04-13T11:26:05, Lars Marowsky-Bree <lmb@xxxxxxx> wrote:

Ok, so the subject is a bit of a lie, because I haven't yet brought over
all changes from our 2.4.21 vendor kernel to 2.4.30 (as I'd need to
disentangle some feature additions first which Neil doesn't like).

However, I've found the root cause of the data corruption issue with md
multipath, after having been side tracked by the abhorrent locking
issues ;-)

It's this innocent "bh->b_rsector = bh->b_blocknr;" in
multipath.c:multipathd(), an obvious artifact from having forked this
from raid1.c - where however this has a clearly different meaning.

For md multipath, this basically implies that _EVERY_ IO which was
in-flight when the error happened and was requeued will be written to a
wrong block on disk.

A minimal fix would be to remove at least this one line, if one didn't
want to fix the locking raid1.c-style (was introduced with 2.4.28).


Sincerely,
    Lars Marowsky-Brée <lmb@xxxxxxx>

-- 
High Availability & Clustering
SUSE Labs, Research and Development
SUSE LINUX Products GmbH - A Novell Business

-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux