kernel-ark/drivers/md
Joe Thornber 6f94a4c45a dm thin: fix stacked bi_next usage
Avoid using the bi_next field for the holder of a cell when deferring
bios because a stacked device below might change it.  Store the
holder in a new field in struct cell instead.

When a cell is created, the bio that triggered creation (the holder) was
added to the same bio list as subsequent bios.  In some cases we pass
this holder bio directly to devices underneath.  If those devices use
the bi_next field there will be trouble...

This also simplifies some code that had to work out which bio was the
holder.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
2012-03-28 18:41:23 +01:00
..
persistent-data device-mapper: using EXPORT_SYBOL in dm-space-map-checker.c needs export.h 2011-11-07 10:29:10 -08:00
bitmap.c md updates for 3.4 2012-03-22 12:29:50 -07:00
bitmap.h md/bitmap: discard CHUNK_BLOCK_SHIFT macro 2012-03-19 12:46:41 +11:00
dm-bio-record.h dm: preserve bi_io_vec when resubmitting bios 2009-04-02 19:55:23 +01:00
dm-bufio.c dm-bufio.c: there's no need to include linux/version.h 2012-02-03 22:38:12 +01:00
dm-bufio.h dm: add bufio 2011-10-31 20:19:09 +00:00
dm-crypt.c dm crypt: add missing error handling 2012-03-28 18:41:22 +01:00
dm-delay.c dm: convert workqueues to alloc_ordered 2011-01-13 19:59:57 +00:00
dm-exception-store.c dm exception store: fix init error path 2012-03-28 18:41:22 +01:00
dm-exception-store.h dm snapshot: test chunk size against both origin and snapshot 2010-08-12 04:13:51 +01:00
dm-flakey.c dm flakey: fix crash on read when corrupt_bio_byte not set 2012-03-07 19:09:39 +00:00
dm-io.c dm io: fix discard support 2012-03-07 19:09:37 +00:00
dm-ioctl.c dm ioctl: do not leak argv if target message only contains whitespace 2012-03-07 19:09:34 +00:00
dm-kcopyd.c dm kcopyd: add dm_kcopyd_zero to zero an area 2011-10-31 20:18:58 +00:00
dm-linear.c dm: do not forward ioctls from logical volumes to the underlying device 2012-01-14 15:07:24 -08:00
dm-log-userspace-base.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
dm-log-userspace-transfer.c netlink: kill eff_cap from struct netlink_skb_parms 2011-03-03 13:32:07 -08:00
dm-log-userspace-transfer.h dm log: userspace add luid to distinguish between concurrent log instances 2009-09-04 20:40:34 +01:00
dm-log.c dm: use vzalloc 2011-08-02 12:32:02 +01:00
dm-mpath.c dm: do not forward ioctls from logical volumes to the underlying device 2012-01-14 15:07:24 -08:00
dm-mpath.h
dm-path-selector.c md: Add module.h to all files using it implicitly 2011-10-31 19:31:18 -04:00
dm-path-selector.h dm mpath: add start_io and nr_bytes to path selectors 2009-06-22 10:12:27 +01:00
dm-queue-length.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
dm-raid1.c dm kcopyd: return client directly and not through a pointer 2011-05-29 13:03:13 +01:00
dm-raid.c md: tidy up rdev_for_each usage. 2012-03-19 12:46:39 +11:00
dm-region-hash.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dm-round-robin.c md: Add module.h to all files using it implicitly 2011-10-31 19:31:18 -04:00
dm-service-time.c md: Add module.h to all files using it implicitly 2011-10-31 19:31:18 -04:00
dm-snap-persistent.c md: Add in export.h for files using EXPORT_SYMBOL 2011-10-31 19:31:19 -04:00
dm-snap-transient.c md: Add in export.h for files using EXPORT_SYMBOL 2011-10-31 19:31:19 -04:00
dm-snap.c dm snapshot: skip reading origin when overwriting complete chunk 2011-08-02 12:32:04 +01:00
dm-stripe.c dm stripe: implement merge method 2011-03-24 13:54:35 +00:00
dm-sysfs.c Driver core: Constify struct sysfs_ops in struct kobj_type 2010-03-07 17:04:49 -08:00
dm-table.c block: Introduce blk_set_stacking_limits function 2012-01-11 16:27:11 +01:00
dm-target.c dm: error return error for discards 2010-08-12 04:14:14 +01:00
dm-thin-metadata.c dm thin metadata: decrement counter after removing mapped block 2012-03-07 19:09:44 +00:00
dm-thin-metadata.h dm: add thin provisioning target 2011-10-31 20:21:18 +00:00
dm-thin.c dm thin: fix stacked bi_next usage 2012-03-28 18:41:23 +01:00
dm-uevent.c md: Add in export.h for files using EXPORT_SYMBOL 2011-10-31 19:31:19 -04:00
dm-uevent.h
dm-zero.c dm: zero silently drop discards 2010-08-12 04:14:12 +01:00
dm.c fs: move code out of buffer.c 2012-01-03 22:54:07 -05:00
dm.h dm table: add immutable feature 2011-10-31 20:19:04 +00:00
faulty.c md: tidy up rdev_for_each usage. 2012-03-19 12:46:39 +11:00
Kconfig dm: add thin provisioning target 2011-10-31 20:21:18 +00:00
linear.c md: add proper merge_bvec handling to RAID0 and Linear. 2012-03-19 12:46:39 +11:00
linear.h md/linear: typedef removal: linear_conf_t -> struct linear_conf 2011-10-11 16:48:54 +11:00
Makefile dm: add thin provisioning target 2011-10-31 20:21:18 +00:00
md.c md: Add judgement bb->unacked_exist in function md_ack_all_badblocks(). 2012-03-19 12:46:42 +11:00
md.h md/raid10: handle merge_bvec_fn in member devices. 2012-03-19 12:46:39 +11:00
multipath.c md: tidy up rdev_for_each usage. 2012-03-19 12:46:39 +11:00
multipath.h md/multipath: typedef removal: multipath_conf_t -> struct mpconf 2011-10-11 16:48:57 +11:00
raid0.c md: add proper merge_bvec handling to RAID0 and Linear. 2012-03-19 12:46:39 +11:00
raid0.h md: add proper merge_bvec handling to RAID0 and Linear. 2012-03-19 12:46:39 +11:00
raid1.c md/raid1: handle merge_bvec_fn in member devices. 2012-03-19 12:46:39 +11:00
raid1.h md/raid1: Allocate spare to store replacement devices and their bios. 2011-12-23 10:17:56 +11:00
raid5.c md: tidy up rdev_for_each usage. 2012-03-19 12:46:39 +11:00
raid5.h md/raid5: detect and handle replacements during recovery. 2011-12-23 10:17:53 +11:00
raid10.c md/raid10 - support resizing some RAID10 arrays. 2012-03-19 12:46:40 +11:00
raid10.h md/raid10: prepare data structures for handling replacement. 2011-12-23 10:17:54 +11:00