summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_worker.c
diff options
context:
space:
mode:
authorPhilipp Reisner <philipp.reisner@linbit.com>2011-06-27 11:51:46 +0200
committerPhilipp Reisner <philipp.reisner@linbit.com>2012-05-09 10:22:31 +0200
commite17117310b73ce6d2340ad46a539d3896a2d6de8 (patch)
tree66fed6cc939a402f70a51fdebb3b27f1f629b0ea /drivers/block/drbd/drbd_worker.c
parentcc94c65015022e7329e80e057e20848581d3f2a5 (diff)
downloadlinux-e17117310b73ce6d2340ad46a539d3896a2d6de8.tar.gz
linux-e17117310b73ce6d2340ad46a539d3896a2d6de8.tar.bz2
linux-e17117310b73ce6d2340ad46a539d3896a2d6de8.zip
drbd: Replaced md_io_mutex by an atomic: md_io_in_use
The new function drbd_md_get_buffer() aborts waiting for the buffer in case the disk failes in the meantime. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_worker.c')
-rw-r--r--drivers/block/drbd/drbd_worker.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index eedfe311c403..94a128b49f4f 100644
--- a/drivers/block/drbd/drbd_worker.c
+++ b/drivers/block/drbd/drbd_worker.c
@@ -78,6 +78,7 @@ void drbd_md_io_complete(struct bio *bio, int error)
md_io->error = error;
complete(&md_io->event);
+ drbd_md_put_buffer(mdev);
}
/* reads on behalf of the partner,