linux/drivers/md
Jun'ichi Nomura 844e8d904a [PATCH] dm: fix rh_dec()/rh_inc() race in dm-raid1.c
Fix another bug in dm-raid1.c that the dirty region may stay in or be moved
to clean list and freed while in use.

It happens as follows:

   CPU0                                   CPU1
   ------------------------------------------------------------------------------
   rh_dec()
     if (atomic_dec_and_test(pending))
        <the region is still marked dirty>
                                          rh_inc()
                                            if the region is clean
                                               mark the region dirty
                                               and remove from clean list
        mark the region clean
        and move to clean list
                                                  atomic_inc(pending)

At this stage, the region is in clean list and will be mistakenly reclaimed
by rh_update_states() later.

Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-09 16:39:09 -07:00
..
raid6test Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bitmap.c [PATCH] md: make sure md bitmap updates are flushed when array is stopped. 2005-08-04 13:00:54 -07:00
dm-bio-list.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-bio-record.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-crypt.c [CRYPTO]: Use CRYPTO_TFM_REQ_MAY_SLEEP where appropriate 2005-09-01 17:43:25 -07:00
dm-emc.c [PATCH] device-mapper dm-emc: Fix a memset 2005-05-05 16:36:46 -07:00
dm-exception-store.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-hw-handler.c [PATCH] device-mapper: Some missing statics 2005-05-05 16:36:46 -07:00
dm-hw-handler.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-io.c [PATCH] kill bio->bi_set 2005-09-07 16:57:20 -07:00
dm-io.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-ioctl.c [PATCH] create a kstrdup library function 2005-06-23 09:45:18 -07:00
dm-linear.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-log.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-log.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-mpath.c [PATCH] device-mapper multipath: Fix pg initialisation races 2005-07-12 16:19:11 -07:00
dm-mpath.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-path-selector.c [PATCH] device-mapper: Some missing statics 2005-05-05 16:36:46 -07:00
dm-path-selector.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-raid1.c [PATCH] dm: fix rh_dec()/rh_inc() race in dm-raid1.c 2005-09-09 16:39:09 -07:00
dm-round-robin.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-snap.c [PATCH] device-mapper snapshots: Handle origin extension 2005-07-12 16:19:11 -07:00
dm-snap.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-stripe.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-table.c [PATCH] device-mapper: fix deadlocks in core (prep) 2005-07-28 21:46:03 -07:00
dm-target.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-zero.c [PATCH] device-mapper: Some missing statics 2005-05-05 16:36:46 -07:00
dm.c [PATCH] kill bio->bi_set 2005-09-07 16:57:20 -07:00
dm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
faulty.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kcopyd.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kcopyd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
linear.c [PATCH] md: fail IO request to md that require a barrier. 2005-09-09 16:39:09 -07:00
Makefile [PATCH] md: optimised resync using Bitmap based intent logging 2005-06-21 19:07:43 -07:00
md.c [PATCH] trivial __user annotations (md) 2005-09-09 14:05:54 -07:00
mktables.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
multipath.c [PATCH] md: fail IO request to md that require a barrier. 2005-09-09 16:39:09 -07:00
raid0.c [PATCH] md: fail IO request to md that require a barrier. 2005-09-09 16:39:09 -07:00
raid1.c [PATCH] md: fail IO request to md that require a barrier. 2005-09-09 16:39:09 -07:00
raid5.c [PATCH] md: fail IO request to md that require a barrier. 2005-09-09 16:39:09 -07:00
raid6.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6algos.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6altivec.uc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6int.uc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6main.c [PATCH] md: fail IO request to md that require a barrier. 2005-09-09 16:39:09 -07:00
raid6mmx.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6recov.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6sse1.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6sse2.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6x86.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid10.c [PATCH] md: fail IO request to md that require a barrier. 2005-09-09 16:39:09 -07:00
unroll.pl Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xor.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00