From 13fcb95ff196505bf0d64cc34d8e9cdca5633183 Mon Sep 17 00:00:00 2001 From: Lars Ellenberg Date: Mon, 26 Mar 2012 16:22:00 +0200 Subject: [PATCH] --- yaml --- r: 346172 b: refs/heads/master c: 9dab3842b5bfffc20135ea56f147e5fe2857be40 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_bitmap.c | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 7e5f487f6b92..1572ec846542 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a6a7d4f0c12d3e04d96cca58b95bb0358101a078 +refs/heads/master: 9dab3842b5bfffc20135ea56f147e5fe2857be40 diff --git a/trunk/drivers/block/drbd/drbd_bitmap.c b/trunk/drivers/block/drbd/drbd_bitmap.c index ef6a79b46dfa..e343817bc69e 100644 --- a/trunk/drivers/block/drbd/drbd_bitmap.c +++ b/trunk/drivers/block/drbd/drbd_bitmap.c @@ -1075,8 +1075,8 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned flags, unsigned lazy_w if (!get_ldev_if_state(mdev, D_ATTACHING)) { /* put is in bm_aio_ctx_destroy() */ dev_err(DEV, "ASSERT FAILED: get_ldev_if_state() == 1 in bm_rw()\n"); - err = -ENODEV; - goto out; + kfree(ctx); + return -ENODEV; } if (!ctx->flags) @@ -1156,7 +1156,6 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned flags, unsigned lazy_w dev_info(DEV, "%s (%lu bits) marked out-of-sync by on disk bit-map.\n", ppsize(ppb, now << (BM_BLOCK_SHIFT-10)), now); -out: kref_put(&ctx->kref, &bm_aio_ctx_destroy); return err; } @@ -1237,8 +1236,8 @@ int drbd_bm_write_page(struct drbd_conf *mdev, unsigned int idx) __must_hold(loc if (!get_ldev_if_state(mdev, D_ATTACHING)) { /* put is in bm_aio_ctx_destroy() */ dev_err(DEV, "ASSERT FAILED: get_ldev_if_state() == 1 in drbd_bm_write_page()\n"); - err = -ENODEV; - goto out; + kfree(ctx); + return -ENODEV; } bm_page_io_async(ctx, idx, WRITE_SYNC); @@ -1251,7 +1250,6 @@ int drbd_bm_write_page(struct drbd_conf *mdev, unsigned int idx) __must_hold(loc mdev->bm_writ_cnt++; err = atomic_read(&ctx->in_flight) ? -EIO : ctx->error; - out: kref_put(&ctx->kref, &bm_aio_ctx_destroy); return err; }