kernel-ark/include/linux
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
..
amba
byteorder
dvb
hdlc
isdn
lockd NLM: Fix sparse warnings 2007-05-14 19:33:46 -04:00
mlx4 IB/mlx4: Make sure inline data segments don't cross a 64 byte boundary 2007-06-18 09:23:47 -07:00
mmc
mtd [MTD] generalise the handling of MTD-specific superblocks 2007-05-11 12:14:15 +01:00
netfilter [NETFILTER]: nf_conntrack_h323: fix ASN.1 types 2007-05-24 16:42:26 -07:00
netfilter_arp [NETFILTER]: Clean up table initialization 2007-05-10 23:47:43 -07:00
netfilter_bridge
netfilter_ipv4 [NETFILTER]: ip_tables: fix compat related crash 2007-06-07 13:40:32 -07:00
netfilter_ipv6 [NETFILTER]: Clean up table initialization 2007-05-10 23:47:43 -07:00
nfsd
raid md: handle_stripe5 - add request/completion logic for async compute ops 2007-07-13 08:06:17 -07:00
spi spi doc updates 2007-06-16 13:16:16 -07:00
sunrpc SUNRPC: Fix sparse warnings 2007-05-14 19:33:47 -04:00
tc_act
tc_ematch
usb
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi_pmtmr.h
acpi.h
adb.h
adfs_fs_i.h
adfs_fs_sb.h
adfs_fs.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio_abi.h signal/timer/event: KAIO eventfd support example 2007-05-11 08:29:37 -07:00
aio.h signal/timer/event: KAIO eventfd support example 2007-05-11 08:29:37 -07:00
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h signal/timer/event fds: anonymous inode source 2007-05-11 08:29:36 -07:00
apm_bios.h
apm-emulation.h
arcdevice.h
arcfb.h
async_tx.h async_tx: add the async_tx api 2007-07-13 08:06:14 -07:00
ata.h libata passthru: update cached device paramters 2007-06-09 23:08:12 -04:00
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmel_pdc.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h [PATCH] Abnormal End of Processes 2007-05-11 05:38:26 -04:00
auto_fs4.h
auto_fs.h
auxvec.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h make sysctl/kernel/core_pattern and fs/exec.c agree on maximum core filename size 2007-05-17 05:23:05 -07:00
bio.h
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blkdev.h
blkpg.h
blktrace_api.h
blockgroup_lock.h
bootmem.h x86_64: allocate sparsemem memmap above 4G 2007-06-01 08:18:27 -07:00
bottom_half.h
bpqether.h
buffer_head.h
bug.h
cache.h
calc64.h
capability.h capability.h warning fix 2007-05-23 20:14:12 -07:00
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
chio.h
circ_buf.h
clk.h
clockchips.h
clocksource.h
cm4000_cs.h
cn_proc.h
cobalt-nvram.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_proc.h
coda_psdev.h
coda.h
coff.h
com20020.h
compat.h Declare another couple of compat syscalls. 2007-05-14 12:16:01 -07:00
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc.h
compiler-intel.h
compiler.h x86_64: Support gcc 5 properly 2007-05-21 09:56:57 -07:00
completion.h
comstats.h
concap.h
configfs.h
connector.h
console_struct.h Protect <linux/console_struct.h> from multiple inclusion 2007-06-08 17:23:34 -07:00
console.h
consolemap.h
const.h
cpu.h
cpufreq.h
cpumask.h
cpuset.h
cramfs_fs_sb.h
cramfs_fs.h
crash_dump.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crypto.h
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
delay.h
delayacct.h
device-mapper.h
device.h
devpts_fs.h
dio.h
dirent.h
display.h
dlm_device.h
dlm.h
dm9000.h
dm-ioctl.h
dma-mapping.h
dmaengine.h dmaengine: make clients responsible for managing channels 2007-07-13 08:06:13 -07:00
dmapool.h
dmi.h
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1wm.h
ds1286.h
ds17287rtc.h
dtlk.h
edd.h
efi.h
efs_dir.h
efs_fs_i.h
efs_fs_sb.h
efs_fs.h
efs_vh.h
eisa.h
elevator.h
elf-em.h
elf-fdpic.h
elf.h
elfcore.h
elfnote.h
err.h
errno.h Better documentation for ERESTARTSYS 2007-06-01 08:18:29 -07:00
errqueue.h
etherdevice.h
ethtool.h
eventfd.h eventfd: clean compile when CONFIG_EVENTFD=n 2007-06-28 11:34:53 -07:00
eventpoll.h
ext2_fs_sb.h
ext2_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_fs.h
ext3_jbd.h
ext4_fs_extents.h ext4: Extent overlap bugfix 2007-05-31 16:20:15 -04:00
ext4_fs_i.h EXT4: Fix whitespace 2007-05-31 16:20:14 -04:00
ext4_fs_sb.h
ext4_fs.h Define/reserve new ext4 superblock fields 2007-05-31 16:20:15 -04:00
ext4_jbd2.h
fadvise.h
fault-inject.h
fb.h fbdev: Move declaration of fb_class to <linux/fb.h> 2007-06-01 08:18:28 -07:00
fcdevice.h
fcntl.h
fd1772.h
fd.h
fddidevice.h
fdreg.h
fib_rules.h
file.h
filter.h
firewire-cdev.h firewire: Change struct fw_cdev_iso_packet to not use bitfields. 2007-05-31 21:40:15 +02:00
firewire-constants.h
firmware.h
flat.h
font.h
freezer.h freezer: move frozen_process() to kernel/power/process.c 2007-05-23 20:14:11 -07:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h document nlink function 2007-06-24 08:59:11 -07:00
fsl_devices.h
fsnotify.h
fuse.h
futex.h Revert "futex_requeue_pi optimization" 2007-06-18 09:48:41 -07:00
gameport.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h genhd: send async notification on media change 2007-05-23 20:14:12 -07:00
getcpu.h
gfp.h
gfs2_ondisk.h
gigaset_dev.h
gpio_keys.h
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hdsmart.h
hid-debug.h
hid.h
hiddev.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htirq.h
hugetlb.h shm: fix the filename of hugetlb sysv shared memory 2007-06-16 13:16:16 -07:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hysdn_if.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-dev.h
i2c-gpio.h
i2c-id.h [ALSA] SoC WM8753 codec support 2007-05-11 16:56:02 +02:00
i2c-isa.h
i2c-ocores.h
i2c-pnx.h
i2c-pxa.h
i2c.h
i2o-dev.h
i2o.h
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h ide: HPA detect from resume 2007-06-08 15:14:30 +02:00
idr.h
ieee80211.h
if_addr.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h Add constant for FCS/CRC length (frame check sequence) 2007-05-21 19:41:19 -04:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h
if_ltalk.h
if_packet.h
if_plip.h
if_ppp.h
if_pppox.h
if_shaper.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h
if_wanpipe.h
if.h
igmp.h
in6.h
in_route.h
in.h
inet_diag.h
inet.h
inetdevice.h [IPV4]: include sysctl.h from inetdevice.h 2007-06-22 17:04:27 -07:00
init_task.h signal/timer/event: signalfd core 2007-05-11 08:29:36 -07:00
init.h kbuild: introduce __init_refok/__initdata_refok to supress section mismatch warnings 2007-05-19 09:11:58 +02:00
initrd.h
inotify.h
input-polldev.h
input.h Input: document some of keycodes 2007-06-29 01:10:54 -04:00
interrupt.h Add hard_irq_disable() 2007-05-11 08:29:34 -07:00
io.h nommu: add ioremap_page_range() 2007-05-15 08:54:00 -07:00
ioc3.h
ioc4.h
ioctl.h
ioport.h
ioprio.h
ip6_tunnel.h
ip_mp_alg.h
ip.h
ipc.h
ipmi_msgdefs.h
ipmi_smi.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h [IPV6] ADDRCONF: Fix conflicts in DEVCONF_xxx constant. 2007-05-31 01:23:36 -07:00
ipx.h
irda.h
irq_cpustat.h
irq.h
irqflags.h
irqreturn.h
isa.h
isapnp.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ixjuser.h
jbd2.h
jbd.h
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h include/linux/kallsyms.h must #include <linux/errno.h> 2007-07-07 13:49:51 -07:00
kbd_diacr.h
kbd_kern.h
Kbuild firewire: Install firewire-constants.h and firewire-cdev.h for userspace. 2007-05-31 21:40:15 +02:00
kd.h
kdebug.h
kdev_t.h
kernel_stat.h
kernel.h hexdump: more output formatting 2007-06-08 17:23:34 -07:00
kernelcapi.h
kexec.h
key-ui.h
key.h
keyboard.h
keyctl.h
kfifo.h
klist.h
kmalloc_sizes.h Slab allocators: define common size limitations 2007-05-17 05:23:04 -07:00
kmod.h
kobj_map.h
kobject.h
kprobes.h
kref.h
ks0108.h
kthread.h
ktime.h [TCP]: Congestion control API RTT sampling fix 2007-06-15 15:08:43 -07:00
kvm_para.h
kvm.h
lapb.h
latency.h
lcd.h
leds.h
libata.h libata: kill ATA_HORKAGE_DMA_RW_ONLY 2007-06-27 02:50:08 -04:00
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
list.h include/linux: trivial repair whitespace damage 2007-05-12 18:11:06 -07:00
llc.h
lm_interface.h
lock_dlm_plock.h
lockdep.h
log2.h Fix roundup_pow_of_two(1) 2007-05-18 20:46:30 -07:00
loop.h
lp.h
m41t00.h
m48t86.h
magic.h signal/timer/event fds: anonymous inode source 2007-05-11 08:29:36 -07:00
major.h mmc: use assigned major for block device 2007-05-14 18:51:43 +02:00
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
memory_hotplug.h
memory.h
mempolicy.h
mempool.h
meye.h
migrate.h
mii.h [NET]: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.h 2007-05-17 14:20:29 -07:00
minix_fs.h
miscdevice.h
mm_inline.h
mm_types.h slub: support concurrent local and remote frees and allocs on a slab 2007-05-10 09:26:52 -07:00
mm.h page_mapping must avoid slub pages 2007-06-21 15:55:12 -07:00
mman.h
mmtimer.h
mmzone.h
mnt_namespace.h
mod_devicetable.h
module.h module_author: don't advise putting in an email address 2007-05-11 08:29:35 -07:00
moduleloader.h
moduleparam.h
mount.h
mpage.h consolidate generic_writepages and mpage_writepages 2007-05-11 08:29:35 -07:00
mqueue.h
mroute.h
msdos_fs.h
msg.h
msi.h
mtio.h
mutex-debug.h
mutex.h
mv643xx.h
n_r3964.h
namei.h
nbd.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
neighbour.h
net.h
netdevice.h [NET] napi: Call __netif_rx_complete in netif_rx_complete 2007-05-31 01:23:35 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h
netpoll.h
netrom.h
nfs2.h
nfs3.h
nfs4_acl.h
nfs4_mount.h
nfs4.h NFS4: Fix incorrect use of sizeof() in fs/nfs/nfs4xdr.c 2007-05-14 19:33:45 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs_page.h NFS: Avoid a deadlock situation on write 2007-05-24 10:44:20 -04:00
nfs_xdr.h
nfs.h
nfsacl.h
nfsd_idmap.h
nl80211.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
oom.h
oprofile.h
page-flags.h
pagemap.h
pagevec.h
param.h
parport_pc.h
parport.h
parser.h
pata_platform.h
patchkey.h
pci_hotplug.h
pci_ids.h sis5513: adding PCI-ID 2007-07-08 15:21:58 +02:00
pci_regs.h
pci-acpi.h
pci.h pci.h stubs (for EDD build error) 2007-07-01 12:29:44 -07:00
pcieport_if.h
percpu_counter.h
percpu.h
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phy.h
pid_namespace.h
pid.h statically initialize struct pid for swapper 2007-05-11 08:29:35 -07:00
pipe_fs_i.h pipe: move pipe_inode_info structure decleration up before it's used 2007-06-08 08:33:53 +02:00
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform_device.h
plist.h
pm_legacy.h
pm.h PM: introduce set_target method in pm_ops 2007-07-01 12:29:44 -07:00
pmu.h
pnp.h
pnpbios.h
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
posix-timers.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
prctl.h
preempt.h
prefetch.h
prio_tree.h
proc_fs.h
profile.h
ps2esdi.h
ptrace.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h
quotaio_v1.h
quotaio_v2.h
quotaops.h
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h
reboot.h
reciprocal_div.h
reiserfs_acl.h
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs_fs.h
reiserfs_xattr.h
relay.h
resource.h
resume-trace.h
rfkill.h [RFKILL]: Make rfkill->name const 2007-06-07 13:39:34 -07:00
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h mm: more rmap checking 2007-05-17 05:23:06 -07:00
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
sc26198.h
scatterlist.h
scc.h
sched.h pi-futex: fix exit races and locking problems 2007-06-08 17:23:34 -07:00
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux_netlink.h
selinux.h
sem.h
seq_file.h
seqlock.h
serial167.h
serial_8250.h
serial_core.h serial_core.h: include <linux/sysrq.h> 2007-06-01 08:18:29 -07:00
serial_pnx8xxx.h
serial_reg.h
serial.h
serialP.h
serio.h
shm.h
shmem_fs.h
signal.h signal/timer/event: signalfd core 2007-05-11 08:29:36 -07:00
signalfd.h signal/timer/event: signalfd core 2007-05-11 08:29:36 -07:00
skbuff.h [TCP]: Congestion control API RTT sampling fix 2007-06-15 15:08:43 -07:00
slab_def.h SLAB: Move two remaining SLAB specific definitions to slab_def.h 2007-05-17 05:23:03 -07:00
slab.h slab allocators: MAX_ORDER one off fix 2007-06-24 08:59:12 -07:00
slub_def.h SLUB: minimum alignment fixes 2007-06-16 13:16:16 -07:00
sm501-regs.h SM501: Check SM501 ID register on initialisation 2007-06-24 08:59:11 -07:00
sm501.h
smb_fs_i.h
smb_fs_sb.h
smb_fs.h Fix headers check fallout 2007-05-21 21:47:27 -07:00
smb_mount.h
smb.h
smbno.h
smp_lock.h
smp.h Let smp_call_function_single return -EBUSY on UP 2007-05-17 05:23:04 -07:00
snmp.h
socket.h
sockios.h
som.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h
srcu.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h
stringify.h
superhyway.h
suspend.h
svga.h
swap.h
swapops.h
synclink.h synclink_gt: add compat_ioctl 2007-05-11 08:29:34 -07:00
sys.h
syscalls.h Introduce fixed sys_sync_file_range2() syscall, implement on PowerPC and ARM 2007-06-28 11:38:30 -07:00
sysctl.h
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
task_io_accounting_ops.h Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
task_io_accounting.h
taskstats_kern.h
taskstats.h
tc.h
tcp.h
telephony.h
termios.h
textsearch_fsm.h
textsearch.h
tfrc.h
thread_info.h
threads.h
ticable.h
tick.h
tifm.h
time.h
timer.h NOHZ: prevent multiplication overflow - stop timer for huge timeouts 2007-05-29 18:11:10 -07:00
timerfd.h signal/timer/event: timerfd core 2007-05-11 08:29:36 -07:00
times.h
timex.h
tiocl.h
tipc_config.h
tipc.h
topology.h
toshiba.h
transport_class.h
trdevice.h
tsacct_kern.h
tty_driver.h tty: add compat_ioctl 2007-05-11 08:29:35 -07:00
tty_flip.h
tty_ldisc.h tty: add compat_ioctl 2007-05-11 08:29:35 -07:00
tty.h
types.h
uaccess.h
udf_fs_i.h
udf_fs_sb.h
udf_fs.h
udp.h
ufs_fs_i.h
ufs_fs_sb.h
ufs_fs.h
uinput.h
uio.h
ultrasound.h
umem.h
un.h
unistd.h
unwind.h
usb_gadget.h
usb_gadgetfs.h
usb_sl811.h
usb_usual.h
usb.h
usbdevice_fs.h
user.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
video_output.h
videodev2.h V4L/DVB (5736): Add V4L2_FBUF_CAP/FLAG_LOCAL/GLOBAL_INV_ALPHA 2007-06-08 08:21:15 -03:00
videodev.h
videotext.h
vmalloc.h
vmstat.h
vt_buffer.h
vt_kern.h
vt.h
wait.h
wanrouter.h
watchdog.h
wireless.h
workqueue.h revert "cancel_delayed_work: use del_timer() instead of del_timer_sync()" 2007-05-18 08:17:17 -07:00
writeback.h Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
x25.h
xattr.h
xfrm.h
yam.h
zconf.h
zlib.h
zorro_ids.h
zorro.h
zutil.h