]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: recheck bio against block device when we map the bio
authorJosef Bacik <jbacik@fusionio.com>
Fri, 19 Oct 2012 20:50:56 +0000 (16:50 -0400)
committerJosef Bacik <jbacik@fusionio.com>
Tue, 11 Dec 2012 18:31:32 +0000 (13:31 -0500)
commit72b973b08ce68464a9146f5f1e06c7e831f07905
treedc50044005ce08b77dbf1aa896082c6e031850b0
parent40c431fd6cebe612988c9aac8f191dff8ecd01ca
Btrfs: recheck bio against block device when we map the bio

Alex reported a problem where we were writing between chunks on a rbd
device.  The thing is we do bio_add_page using logical offsets, but the
physical offset may be different.  So when we map the bio now check to see
if the bio is still ok with the physical offset, and if it is not split the
bio up and redo the bio_add_page with the physical sector.  This fixes the
problem for Alex and doesn't affect performance in the normal case.  Thanks,

Reported-and-tested-by: Alex Elder <elder@inktank.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/volumes.c