md: simplify updating of event count to sometimes avoid updating spares.
commita8707c08f4f718bb0ed65499d3f43201f6e41455
authorNeilBrown <neilb@suse.de>
Mon, 17 May 2010 23:28:43 +0000 (18 09:28 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 18 May 2010 05:28:01 +0000 (18 15:28 +1000)
tree8fc3ea9ea924ebc4f28012c11f3c1e70ad60bcb2
parent7b0bb5368a7195606eca475d9f4e291ab7227052
md: simplify updating of event count to sometimes avoid updating spares.

When updating the event count for a simple clean <-> dirty transition,
we try to avoid updating the spares so they can safely spin-down.
As the event_counts across an array must be +/- 1, this means
decrementing the event_count on a dirty->clean transition.
This is not always safe and we have to avoid the unsafe time.
We current do this with a misguided idea about it being safe or
not depending on whether the event_count is odd or even.  This
approach only works reliably in a few common instances, but easily
falls down.

So instead, simply keep internal state concerning whether it is safe
or not, and always assume it is not safe when an array is first
assembled.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c
drivers/md/md.h