mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-09-16 18:15:52 +00:00
Tighten the use of return values from the target map and end_io functions.
Values of 2 and above are now explictly reserved for future use. There are no
existing targets using such values.
The patch has no effect on existing behaviour.
o Reserve return values of 2 and above from target map functions.
Any positive value currently indicates "mapping complete", but all
existing drivers use the value 1. We now make that a requirement
so we can assign new meaning to higher values in future.
The new definition of return values from target map functions is:
< 0 : error
= 0 : The target will handle the io (DM_MAPIO_SUBMITTED).
= 1 : Mapping completed (DM_MAPIO_REMAPPED).
> 1 : Reserved (undefined). Previously this was the same as '= 1'.
o Reserve return values of 2 and above from target end_io functions
for similar reasons.
DM_ENDIO_INCOMPLETE is introduced for a return value of 1.
Test results:
I have tested by using the multipath target.
I/Os succeed when valid paths exist.
I/Os are queued in the multipath target when there are no valid paths and
queue_if_no_path is set.
I/Os fail when there are no valid paths and queue_if_no_path is not set.
Signed-off-by: Kiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: dm-devel@redhat.com
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
History
|
|
|---|---|---|
| .. | ||
| raid6test | ||
| .gitignore | ||
| bitmap.c | ||
| dm-bio-list.h | ||
| dm-bio-record.h | ||
| dm-crypt.c | ||
| dm-emc.c | ||
| dm-exception-store.c | ||
| dm-hw-handler.c | ||
| dm-hw-handler.h | ||
| dm-io.c | ||
| dm-io.h | ||
| dm-ioctl.c | ||
| dm-linear.c | ||
| dm-log.c | ||
| dm-log.h | ||
| dm-mpath.c | ||
| dm-mpath.h | ||
| dm-path-selector.c | ||
| dm-path-selector.h | ||
| dm-raid1.c | ||
| dm-round-robin.c | ||
| dm-snap.c | ||
| dm-snap.h | ||
| dm-stripe.c | ||
| dm-table.c | ||
| dm-target.c | ||
| dm-zero.c | ||
| dm.c | ||
| dm.h | ||
| faulty.c | ||
| Kconfig | ||
| kcopyd.c | ||
| kcopyd.h | ||
| linear.c | ||
| Makefile | ||
| md.c | ||
| mktables.c | ||
| multipath.c | ||
| raid0.c | ||
| raid1.c | ||
| raid5.c | ||
| raid6.h | ||
| raid6algos.c | ||
| raid6altivec.uc | ||
| raid6int.uc | ||
| raid6mmx.c | ||
| raid6recov.c | ||
| raid6sse1.c | ||
| raid6sse2.c | ||
| raid6x86.h | ||
| raid10.c | ||
| unroll.pl | ||
| xor.c | ||