kernel-fxtec-pro1x/drivers/md
Dan Williams f38e12199a md: handle_stripe5 - add request/completion logic for async compute ops
handle_stripe will compute a block when a backing disk has failed, or when
it determines it can save a disk read by computing the block from all the
other up-to-date blocks.

Previously a block would be computed under the lock and subsequent logic in
handle_stripe could use the newly up-to-date block.  With the raid5_run_ops
implementation the compute operation is carried out a later time outside
the lock.  To preserve the old functionality we take advantage of the
dependency chain feature of async_tx to flag the block as R5_Wantcompute
and then let other parts of handle_stripe operate on the block as if it
were up-to-date.  raid5_run_ops guarantees that the block will be ready
before it is used in another operation.

However, this only works in cases where the compute and the dependent
operation are scheduled at the same time.  If a previous call to
handle_stripe sets the R5_Wantcompute flag there is no facility to pass the
async_tx dependency chain across successive calls to raid5_run_ops.  The
req_compute variable protects against this case.

Changelog:
* remove the req_compute BUG_ON

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-By: NeilBrown <neilb@suse.de>
2007-07-13 08:06:17 -07:00
..
raid6test
.gitignore
bitmap.c md: don't write more than is required of the last page of a bitmap 2007-05-23 20:14:14 -07:00
dm-bio-list.h dm: bio list helpers 2007-05-09 12:30:47 -07:00
dm-bio-record.h
dm-crypt.c dm crypt: add null iv 2007-05-09 12:30:46 -07:00
dm-delay.c dm: delay target 2007-05-09 12:30:47 -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 exception store: update dm io interface 2007-05-09 12:30:47 -07:00
dm-hw-handler.c
dm-hw-handler.h dm mpath: log device name 2007-05-09 12:30:46 -07:00
dm-io.c dm io: remove old interface 2007-05-09 12:30:47 -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.c dm mpath: log device name 2007-05-09 12:30:46 -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
dm-path-selector.h [PATCH] struct path: rename DM's struct path 2006-12-08 08:28:40 -08:00
dm-raid1.c dm raid1: switch rh_in_sync to blocking in do_reads 2007-05-09 12:30:48 -07:00
dm-round-robin.c [PATCH] struct path: rename DM's struct path 2006-12-08 08:28:40 -08:00
dm-snap.c [PATCH] make drivers/md/dm-snap.c:ksnapd static 2006-12-08 08:29:09 -08:00
dm-snap.h [PATCH] dm snapshot: add workqueue 2006-10-03 08:04:14 -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
dm-zero.c [PATCH] dm: map and endio symbolic return codes 2006-12-08 08:29:09 -08:00
dm.c dm mpath: log device name 2007-05-09 12:30:46 -07:00
dm.h [PATCH] dm: suspend: add noflush pushback 2006-12-08 08:29:09 -08: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
Kconfig async_tx: add the async_tx api 2007-07-13 08:06:14 -07:00
kcopyd.c dm kcopyd: update dm io interface 2007-05-09 12:30:47 -07:00
kcopyd.h
linear.c md: fix bug with linear hot-add and elsewhere 2007-05-23 20:14:14 -07:00
Makefile xor: make 'xor_blocks' a library routine for use with async_tx 2007-07-13 08:06:14 -07:00
md.c xor: make 'xor_blocks' a library routine for use with async_tx 2007-07-13 08:06:14 -07:00
mktables.c
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: fix bug in error handling during raid1 repair 2007-06-16 13:16:15 -07:00
raid5.c md: handle_stripe5 - add request/completion logic for async compute ops 2007-07-13 08:06:17 -07:00
raid6.h
raid6algos.c
raid6altivec.uc
raid6int.uc
raid6mmx.c [PATCH] md: RAID6: clean up CPUID and FPU enter/exit code 2007-03-01 14:53:36 -08:00
raid6recov.c
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: fix two raid10 bugs 2007-06-16 13:16:15 -07:00
unroll.pl