Yehuda Sadeh
1fec70932d
rbd: fix split bio handling
...
The rbd driver currently splits bios when they span an object boundary.
However, the blk_end_request expects the completions to roll up the results
in block device order, and the split rbd/ceph ops can complete in any
order. This patch adds a struct rbd_req_coll to track completion of split
requests and ensures that the results are passed back up to the block layer
in order.
This fixes errors where the file system gets completion of a read operation
that spans an object boundary before the data has actually arrived. The
bug is easily reproduced with iozone with a working set larger than
available RAM.
Reported-by: Fyodor Ustinov <ufm@ufm.su>
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
Signed-off-by: Sage Weil <sage@newdream.net>
2011-05-13 13:52:57 -07:00
..
aoe
drivers/block/aoe/Makefile: replace the use of <module>-objs with <module>-y
2011-01-19 08:25:02 -07:00
drbd
Fix common misspellings
2011-03-31 11:26:23 -03:00
paride
paride: Convert to bdops->check_events()
2011-03-09 19:54:28 +01:00
amiflop.c
Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block
2011-03-24 10:16:26 -07:00
ataflop.c
floppy,{ami|ata}flop: Convert to bdops->check_events()
2011-03-09 19:54:27 +01:00
brd.c
Merge branch 'for-2.6.37/barrier' of git://git.kernel.dk/linux-2.6-block
2010-10-22 17:07:18 -07:00
cciss.c
cciss: fix missed command status value CMD_UNABORTABLE
2011-03-12 10:02:30 +01:00
cciss.h
cciss: fix lost command issue
2011-03-23 20:47:11 +01:00
cciss_cmd.h
cciss: Inform controller we are using 32-bit tags.
2011-03-12 10:02:16 +01:00
cciss_scsi.c
Revert "cciss: Add missing allocation in scsi_cmd_stack_setup and corresponding deallocation"
2011-03-12 13:47:51 +01:00
cciss_scsi.h
cpqarray.c
block: remove per-queue plugging
2011-03-10 08:52:07 +01:00
cpqarray.h
cryptoloop.c
DAC960.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
DAC960.h
floppy.c
Merge branch 'for-2.6.39/stack-plug' into for-2.6.39/core
2011-03-10 08:58:35 +01:00
hd.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
ida_cmd.h
ida_ioctl.h
Kconfig
xen: separate out frontend xenbus
2011-01-05 16:29:17 -05:00
loop.c
Merge branch 'for-2.6.39/stack-plug' into for-2.6.39/core
2011-03-10 08:58:35 +01:00
Makefile
drivers/block/Makefile: replace the use of <module>-objs with <module>-y
2011-01-19 08:25:02 -07:00
mg_disk.c
nbd.c
nbd: remove module-level ioctl mutex
2011-02-11 16:12:20 -08:00
osdblk.c
pktcdvd.c
Merge branch 'for-2.6.39/stack-plug' into for-2.6.39/core
2011-03-10 08:58:35 +01:00
ps3disk.c
Merge branch 'for-2.6.37/barrier' of git://git.kernel.dk/linux-2.6-block
2010-10-22 17:07:18 -07:00
ps3vram.c
rbd.c
rbd: fix split bio handling
2011-05-13 13:52:57 -07:00
rbd_types.h
rbd: introduce rados block device (rbd), based on libceph
2010-10-20 15:38:13 -07:00
smart1,2.h
fix typos 'comamnd' -> 'command' in comments
2011-02-02 11:31:21 +01:00
sunvdc.c
swim.c
swim[3]: Convert to bdops->check_events()
2011-03-09 19:54:28 +01:00
swim3.c
swim[3]: Convert to bdops->check_events()
2011-03-09 19:54:28 +01:00
swim_asm.S
sx8.c
ub.c
ub: Convert to bdops->check_events()
2011-03-09 19:54:28 +01:00
umem.c
Merge branch 'for-2.6.39/stack-plug' into for-2.6.39/core
2011-03-10 08:58:35 +01:00
umem.h
viodasd.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
virtio_blk.c
Merge branch 'for-2.6.37/barrier' of git://git.kernel.dk/linux-2.6-block
2010-10-22 17:07:18 -07:00
xd.c
xd.h
xen-blkfront.c
Merge branch 'for-linus' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm
2011-03-15 10:59:09 -07:00
xsysace.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
z2ram.c
drivers/block/z2ram.c: correct printing of sector_t
2010-10-28 06:15:26 -06:00