linux/include
NeilBrown a9701a3047 [PATCH] md: support BIO_RW_BARRIER for md/raid1
We can only accept BARRIER requests if all slaves handle
barriers, and that can, of course, change with time....

So we keep track of whether the whole array seems safe for barriers,
and also whether each individual rdev handles barriers.

We initially assumes barriers are OK.

When writing the superblock we try a barrier, and if that fails, we flag
things for no-barriers.  This will usually clear the flags fairly quickly.

If writing the superblock finds that BIO_RW_BARRIER is -ENOTSUPP, we need to
resubmit, so introduce function "md_super_wait" which waits for requests to
finish, and retries ENOTSUPP requests without the barrier flag.

When writing the real raid1, write requests which were BIO_RW_BARRIER but
which aresn't supported need to be retried.  So raid1d is enhanced to do this,
and when any bio write completes (i.e.  no retry needed) we remove it from the
r1bio, so that devices needing retry are easy to find.

We should hardly ever get -ENOTSUPP errors when writing data to the raid.
It should only happen if:
  1/ the device used to support BARRIER, but now doesn't.  Few devices
     change like this, though raid1 can!
or
  2/ the array has no persistent superblock, so there was no opportunity to
     pre-test for barriers when writing the superblock.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-09 07:56:38 -08:00
..
acpi
asm-alpha [PATCH] consolidate sys_ptrace() 2005-11-07 07:53:42 -08:00
asm-arm Merge with ARM SMP tree 2005-11-08 22:43:44 +00:00
asm-arm26 [PATCH] semaphore: Remove __MUTEX_INITIALIZER() 2005-10-30 17:37:27 -08:00
asm-cris [PATCH] fix remaining missing includes 2005-11-07 07:53:41 -08:00
asm-frv [PATCH] fix remaining missing includes 2005-11-07 07:53:41 -08:00
asm-generic [PATCH] RapidIO support: core base 2005-11-07 07:53:46 -08:00
asm-h8300 [PATCH] semaphore: Remove __MUTEX_INITIALIZER() 2005-10-30 17:37:27 -08:00
asm-i386 [PATCH] Kprobes: Track kprobe on a per_cpu basis - i386 changes 2005-11-07 07:53:45 -08:00
asm-ia64 Auto-update from upstream 2005-11-07 09:05:22 -08:00
asm-m32r [PATCH] consolidate sys_ptrace() 2005-11-07 07:53:42 -08:00
asm-m68k [SPARC]: Kill remaining kbio.h references. 2005-11-07 14:12:21 -08:00
asm-m68knommu [PATCH] m68knommu: move some platform irq support out of irq.h 2005-11-07 08:00:47 -08:00
asm-mips Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2005-11-07 11:15:23 -08:00
asm-parisc [PATCH] fix remaining missing includes 2005-11-07 07:53:41 -08:00
asm-powerpc [PATCH] ppc32: fix perf_irq extern on e500 2005-11-09 07:55:52 -08:00
asm-ppc [PATCH] ppc32: Update MPC834x platform to work with new phylib 2005-11-09 07:55:52 -08:00
asm-ppc64 powerpc: merge ide.h 2005-11-08 12:20:34 +11:00
asm-s390 [PATCH] s390: "extern inline" -> "static inline" 2005-11-09 07:55:52 -08:00
asm-sh [PATCH] fix remaining missing includes 2005-11-07 07:53:41 -08:00
asm-sh64 [PATCH] fix remaining missing includes 2005-11-07 07:53:41 -08:00
asm-sparc [SPARC]: remove vuid_event.h 2005-11-07 14:11:38 -08:00
asm-sparc64 [SPARC64] mm: simpler tlb_flush_mmu 2005-11-07 14:12:08 -08:00
asm-um [PATCH] uml: maintain own LDT entries 2005-11-07 07:53:31 -08:00
asm-v850 [PATCH] include/asm-v850/ "extern inline" -> "static inline" 2005-11-07 07:53:32 -08:00
asm-x86_64 [PATCH] Kprobes: Track kprobe on a per_cpu basis - x86_64 changes 2005-11-07 07:53:46 -08:00
asm-xtensa [PATCH] fix remaining missing includes 2005-11-07 07:53:41 -08:00
keys [PATCH] Keys: Export user-defined keyring operations 2005-10-30 17:37:22 -08:00
linux [PATCH] md: support BIO_RW_BARRIER for md/raid1 2005-11-09 07:56:38 -08:00
math-emu
media [PATCH] V4L: 904: added dvb support for tda8275a philips tiger reference design 2005-11-09 07:56:30 -08:00
mtd [MTD] user-abi: Clean up trailing white spaces 2005-11-07 14:43:11 +01:00
net [Bluetooth]: Remove the usage of /proc completely 2005-11-08 09:57:38 -08:00
pcmcia [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
rdma [IB] ucm: 32/64 compatibility fixes 2005-11-01 13:18:54 -08:00
rxrpc
scsi Merge by Hand 2005-11-04 22:29:52 -06:00
sound [ALSA] version 1.0.10rc3 2005-11-07 14:35:14 +01:00
video