]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] md: Improve locking around error handling
authorNeilBrown <neilb@suse.de>
Tue, 3 Oct 2006 08:15:53 +0000 (01:15 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 3 Oct 2006 15:04:18 +0000 (08:04 -0700)
commite46e32694beb3eda7ddc5ef04ecbfd9471443587
tree8481ab270218bed246eb02b3ba04a4b84d4e90d0
parent1f5a1d38c30b05fc019d670193c659d08003709d
[PATCH] md: Improve locking around error handling

The error handling routines don't use proper locking, and so two concurrent
errors could trigger a problem.

So:
  - use test-and-set and test-and-clear to synchonise
    the In_sync bits with the ->degraded count
  - use the spinlock to protect updates to the
    degraded count (could use an atomic_t but that
    would be a bigger change in code, and isn't
    really justified)
  - remove un-necessary locking in raid5

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/md/raid1.c
drivers/md/raid10.c
drivers/md/raid5.c