On Tue, May 6, 2008 at 2:53 AM, Neil Brown <neilb@suse.de> wrote:Hi Neil, I definitely could be misinterpreting something. However, I did determine that if the write-mostly NBD member of the raid1 becomes degraded while writing to the raid1 it frequently has an 'events' that is one less than the 'events_cleared' (of the local raid1 member that the array gets reassembled with first). The events indicate the NBD member is clean and the local member is dirty. I'm using internal bitmaps. I've focused on the even->odd (clean->dirty) transition to rationalize the safety of allowing the NBD member to be off by one _and_ clean. That could easily be superficial but it seems significant. It looks like bitmap_update_sb()'s incrementing of events_cleared (on behalf of the local member) could be racing with the fact that the NBD member becomes faulty (whereby making the array degraded). This allows the events_cleared to reflect a clean->dirty transition last occurred before the array became degraded. My reasoning is: If it was a clean->dirty transition the bitmap still has the associated dirty bit set in the local member's bitmap, so using the bitmap to resync is valid. thanks, Mike --
| FUJITA Tomonori | Re: Linux 2.6.25-rc4 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Jan Engelhardt | intel iommu (Re: -mm merge plans for 2.6.23) |
| Artem Bityutskiy | [PATCH 11/44 take 2] [UBI] allocation unit header |
git: | |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Natalie Protasevich | [BUG] New Kernel Bugs |
