Dan Williams c8894419ac md: fix raid5 'repair' operations
commit bd2ab67030e9116f1e4aae1289220255412b37fd "md: close a livelock window
in handle_parity_checks5" introduced a bug in handling 'repair' operations.
After a repair operation completes we clear the state bits tracking this
operation.  However, they are cleared too early and this results in the code
deciding to re-run the parity check operation.  Since we have done the repair
in memory the second check does not find a mismatch and thus does not do a
writeback.

Test results:
$ echo repair > /sys/block/md0/md/sync_action
$ cat /sys/block/md0/md/mismatch_cnt
51072
$ echo repair > /sys/block/md0/md/sync_action
$ cat /sys/block/md0/md/mismatch_cnt
0

(also fix incorrect indentation)

Cc: <stable@kernel.org>
Tested-by: George Spelvin <linux@horizon.com>
Acked-by: NeilBrown <neilb@suse.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-13 08:02:24 -07:00
..
2006-01-01 22:21:50 +01:00
2007-10-20 02:01:11 +01:00
2005-04-16 15:20:36 -07:00
2008-03-28 14:45:22 -07:00
2007-10-20 02:01:11 +01:00
2008-04-25 13:26:55 +01:00
2007-10-20 02:01:07 +01:00
2007-10-20 02:01:18 +01:00
2008-04-25 13:26:57 +01:00
2008-02-08 02:10:16 +00:00
2008-04-25 13:26:57 +01:00
2008-04-25 13:26:55 +01:00
2008-02-08 02:10:35 +00:00
2007-10-20 02:01:07 +01:00
2008-04-25 13:26:57 +01:00
2008-04-25 13:26:55 +01:00
2008-04-25 13:26:44 +01:00
2008-02-08 02:11:24 +00:00
2007-10-20 02:01:07 +01:00
2007-10-20 02:01:26 +01:00
2008-04-25 13:26:53 +01:00
2008-02-08 02:10:32 +00:00
2008-04-25 13:26:55 +01:00
2008-02-06 10:41:18 -08:00
2008-05-13 08:02:24 -07:00
2005-09-17 11:49:58 -07:00
2005-09-17 11:49:58 -07:00
2005-04-16 15:20:36 -07:00
2007-10-29 07:41:32 -07:00
2005-04-16 15:20:36 -07:00
2007-10-29 07:41:32 -07:00
2007-10-29 07:41:32 -07:00
2007-10-29 07:41:32 -07:00
2005-04-16 15:20:36 -07:00