On Wed, Nov 09, 2016 at 10:21:32AM +1100, Neil Brown wrote: > While performing a resync/recovery, raid1 divides the > array space into three regions: > - before the resync > - at or shortly after the resync point > - much further ahead of the resync point. > > Write requests to the first or third do not need to wait. Write > requests to the middle region do need to wait if resync requests are > pending. > > If there are any active write requests in the middle region, resync > will wait for them. > > Due to an accounting error, there is a small range of addresses, > between conf->next_resync and conf->start_next_window, where write > requests will *not* be blocked, but *will* be counted in the middle > region. This can effectively block resync indefinitely if filesystem > writes happen repeatedly to this region. Good catch, thanks Neil! > As ->next_window_requests is incremented when the sector is before I changed 'before' to 'after' when applying this patch Thanks, Shaohua -- 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