summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@hq.newdream.net>2011-05-13 13:52:56 -0700
committerSage Weil <sage@newdream.net>2011-05-13 13:52:57 -0700
commit1fec70932d867416ffe620dd17005f168cc84eb5 (patch)
tree921f08b555d2b71e7356034aae65bed4ed37e2df /fs
parent11f770027b5c0de16544f3ec82b5c6f9f8d5a644 (diff)
downloadlinux-3.10-1fec70932d867416ffe620dd17005f168cc84eb5.tar.gz
linux-3.10-1fec70932d867416ffe620dd17005f168cc84eb5.tar.bz2
linux-3.10-1fec70932d867416ffe620dd17005f168cc84eb5.zip
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>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions