OpenCloudOS-Kernel/drivers/md
Milan Broz 80b16c192e dm io: fix panic on large request
Flush workqueue before releasing bioset and mopools in dm-crypt.  There can
be finished but not yet released request.

Call chain causing oops:
  run workqueue
    dec_pending
      bio_endio(...);
      	<remove device request - remove mempool>
      mempool_free(io, cc->io_pool);

This usually happens when cryptsetup create temporary
luks mapping in the beggining of crypt device activation.

When dm-core calls destructor crypt_dtr, no new request
are possible.

Signed-off-by: Milan Broz <mbroz@redhat.com>
Cc: Chuck Ebbert <cebbert@redhat.com>
Cc: Patrick McHardy <kaber@trash.net>
Acked-by: Alasdair G Kergon <agk@redhat.com>
Cc: Christophe Saout <christophe@saout.de>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-21 17:49:14 -07:00
..
raid6test [PATCH] RAID6 Altivec fix 2005-09-17 11:49:58 -07:00
.gitignore gitignore: misc files 2006-01-01 22:21:50 +01:00
Kconfig Use menuconfig objects II - MD 2007-07-17 10:23:15 -07:00
Makefile Merge branch 'ioat-md-accel-for-linus' of git://lost.foo-projects.org/~dwillia2/git/iop 2007-07-13 10:52:27 -07:00
bitmap.c md: change bitmap_unplug and others to void functions 2007-07-17 10:23:15 -07:00
dm-bio-list.h dm: bio_list prefetch removal 2007-07-12 15:01:08 -07:00
dm-bio-record.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dm-crypt.c dm io: fix panic on large request 2007-07-21 17:49:14 -07:00
dm-delay.c dm delay: cleanup 2007-07-12 15:01:08 -07:00
dm-emc.c [PATCH] struct path: rename DM's struct path 2006-12-08 08:28:40 -08:00
dm-exception-store.c dm: fix memory leak in dm_create_persistent() when starting metadata update thread fails 2007-07-18 08:38:22 -07:00
dm-hw-handler.c BUG_ON() Conversion in md/dm-hw-handler.c 2006-03-24 18:36:27 +01:00
dm-hw-handler.h dm mpath: log device name 2007-05-09 12:30:46 -07:00
dm-io.c dm io: fix panic on large request 2007-07-12 15:01:08 -07:00
dm-io.h dm io: remove old interface 2007-05-09 12:30:47 -07:00
dm-ioctl.c [PATCH] mark struct file_operations const 4 2007-02-12 09:48:45 -08:00
dm-linear.c [PATCH] dm: map and endio symbolic return codes 2006-12-08 08:29:09 -08:00
dm-log.c dm log: fix resume failed log device 2007-05-09 12:30:48 -07:00
dm-log.h [PATCH] dm: log: rename complete_resync_work 2006-12-08 08:29:09 -08:00
dm-mpath-rdac.c dm mpath: rdac 2007-07-12 15:01:23 -07:00
dm-mpath.c dm: disable barriers 2007-07-12 15:01:08 -07:00
dm-mpath.h [PATCH] struct path: rename DM's struct path 2006-12-08 08:28:40 -08:00
dm-path-selector.c BUG_ON() Conversion in md/dm-path-selector.c 2006-03-26 18:21:58 +02:00
dm-path-selector.h [PATCH] struct path: rename DM's struct path 2006-12-08 08:28:40 -08:00
dm-raid1.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
dm-round-robin.c dm: remove duplicate module name from error msgs 2007-07-12 15:01:08 -07:00
dm-snap.c dm: disable barriers 2007-07-12 15:01:08 -07:00
dm-snap.h dm: use kmem_cache macro 2007-07-12 15:01:08 -07:00
dm-stripe.c [PATCH] dm: map and endio symbolic return codes 2006-12-08 08:29:09 -08:00
dm-table.c dm: allow offline devices 2007-05-09 12:30:47 -07:00
dm-target.c [PATCH] dm: improve error message consistency 2006-06-26 09:58:36 -07:00
dm-zero.c [PATCH] dm: map and endio symbolic return codes 2006-12-08 08:29:09 -08:00
dm.c unregister_blkdev() delete redundant messages in callers 2007-07-17 10:23:03 -07:00
dm.h dm: add ratelimit logging macros 2007-07-12 15:01:08 -07:00
faulty.c [PATCH] md: Don't assume that READ==0 and WRITE==1 - use the names explicitly 2006-12-13 09:05:48 -08:00
kcopyd.c dm: use kmem_cache macro 2007-07-12 15:01:08 -07:00
kcopyd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
linear.c md: fix bug with linear hot-add and elsewhere 2007-05-23 20:14:14 -07:00
md.c md: change bitmap_unplug and others to void functions 2007-07-17 10:23:15 -07:00
mktables.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
multipath.c [PATCH] md: fix up maintenance of ->degraded in multipath 2006-10-28 11:30:51 -07:00
raid0.c md: avoid overflow in raid0 calculation with large components 2007-05-23 20:14:14 -07:00
raid1.c md: change bitmap_unplug and others to void functions 2007-07-17 10:23:15 -07:00
raid5.c async_tx: fix kmap_atomic usage in async_memcpy 2007-07-20 08:44:19 -07:00
raid6.h [PATCH] RAID6 Altivec fix 2005-09-17 11:49:58 -07:00
raid6algos.c [PATCH] drivers/md/raid6algos.c: fix a NULL dereference 2006-06-23 07:43:08 -07:00
raid6altivec.uc [PATCH] RAID6 Altivec fix 2005-09-17 11:49:58 -07:00
raid6int.uc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6mmx.c [PATCH] md: RAID6: clean up CPUID and FPU enter/exit code 2007-03-01 14:53:36 -08:00
raid6recov.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raid6sse1.c [PATCH] md: RAID6: clean up CPUID and FPU enter/exit code 2007-03-01 14:53:36 -08:00
raid6sse2.c [PATCH] md: RAID6: clean up CPUID and FPU enter/exit code 2007-03-01 14:53:36 -08:00
raid6x86.h [PATCH] md: RAID6: clean up CPUID and FPU enter/exit code 2007-03-01 14:53:36 -08:00
raid10.c md: change bitmap_unplug and others to void functions 2007-07-17 10:23:15 -07:00
unroll.pl Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00