summaryrefslogtreecommitdiff
path: root/mm/mremap.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2007-01-02 13:52:30 -0700
committerDan Williams <dan.j.williams@intel.com>2007-07-13 08:06:16 -0700
commite33129d84130459dbb764a1a52a4bfceab3da978 (patch)
treec3f2742dac468a1c62e14ec1f2ec0cb5a37ee966 /mm/mremap.c
parentd84e0f10d38393f617227f0c831a99c69294651f (diff)
downloadlinux-3.10-e33129d84130459dbb764a1a52a4bfceab3da978.tar.gz
linux-3.10-e33129d84130459dbb764a1a52a4bfceab3da978.tar.bz2
linux-3.10-e33129d84130459dbb764a1a52a4bfceab3da978.zip
md: handle_stripe5 - add request/completion logic for async write ops
After handle_stripe5 decides whether it wants to perform a read-modify-write, or a reconstruct write it calls handle_write_operations5. A read-modify-write operation will perform an xor subtraction of the blocks marked with the R5_Wantprexor flag, copy the new data into the stripe (biodrain) and perform a postxor operation across all up-to-date blocks to generate the new parity. A reconstruct write is run when all blocks are already up-to-date in the cache so all that is needed is a biodrain and postxor. On the completion path STRIPE_OP_PREXOR will be set if the operation was a read-modify-write. The STRIPE_OP_BIODRAIN flag is used in the completion path to differentiate write-initiated postxor operations versus expansion-initiated postxor operations. Completion of a write triggers i/o to the drives. Changelog: * make the 'rcw' parameter to handle_write_operations5 a simple flag, Neil Brown * remove test_and_set/test_and_clear BUG_ONs, Neil Brown Signed-off-by: Dan Williams <dan.j.williams@intel.com> Acked-By: NeilBrown <neilb@suse.de>
Diffstat (limited to 'mm/mremap.c')
0 files changed, 0 insertions, 0 deletions