Hi Zhao, On Wed June 29 2005 5:10 am, Zhao Qian wrote: > As i had written here before, sometimes bio which dispatched to the dm's > target, it's bi_size could exceed region size in dm-mirror.c, i also found > similar problem in dm-stripe.c and dm-snap.c, Have you specifically seen this problem happen during testing? > in such situation, bio's > bi_size could exceed strip target's chunk size and snap target's chunk > size, but in current code, we never care about this. so in strip target we > could read/write bad position after stripe_map() function, and cause same > effect in dm-snap.c. I'm quite certain there is code in dm.c to prevent bio's from spanning the internal boundaries in the mirror, snapshot, and stripe targets. Have you read through the code starting in dm.c::dm_request()? The targets specify where their internal boundaries are, and the core driver is responsible for splitting up bio's so the targets never get a request that span those boundaries. > I think such bugs are very dangerous then kernel panic or cracsh becasue it > may destroy your data in silence. we'd better to annonuce our linux users > don't use thus dm-targets before we correct it. If you've seen a case of actual corruption due to this, please let us know and we'll investigate to see if something accidentally has been broken. But as I mentioned above, I don't think this should really be a problem. -- Kevin Corry kevcorry@xxxxxxxxxx http://www.ibm.com/linux/ http://evms.sourceforge.net/