Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 242913
b: refs/heads/master
c: 8f21420
h: refs/heads/master
i:
  242911: 97c4eec
v: v3
  • Loading branch information
Philipp Reisner committed Mar 10, 2011
1 parent ec08b05 commit 612c940
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7fde2be93080c028c20078a2d6abec8a95891192
refs/heads/master: 8f21420ebd5ca5a751e2f606b49b0acd2a2af314
28 changes: 15 additions & 13 deletions trunk/drivers/block/drbd/drbd_worker.c
Original file line number Diff line number Diff line change
Expand Up @@ -1081,25 +1081,27 @@ int w_e_end_ov_req(struct drbd_conf *mdev, struct drbd_work *w, int cancel)
if (unlikely(cancel))
goto out;

if (unlikely((e->flags & EE_WAS_ERROR) != 0))
goto out;

digest_size = crypto_hash_digestsize(mdev->verify_tfm);
/* FIXME if this allocation fails, online verify will not terminate! */
digest = kmalloc(digest_size, GFP_NOIO);
if (digest) {
drbd_csum_ee(mdev, mdev->verify_tfm, e, digest);
inc_rs_pending(mdev);
ok = drbd_send_drequest_csum(mdev, e->sector, e->size,
digest, digest_size, P_OV_REPLY);
if (!ok)
dec_rs_pending(mdev);
kfree(digest);
if (!digest) {
ok = 0; /* terminate the connection in case the allocation failed */
goto out;
}

if (likely(!(e->flags & EE_WAS_ERROR)))
drbd_csum_ee(mdev, mdev->verify_tfm, e, digest);
else
memset(digest, 0, digest_size);

inc_rs_pending(mdev);
ok = drbd_send_drequest_csum(mdev, e->sector, e->size,
digest, digest_size, P_OV_REPLY);
if (!ok)
dec_rs_pending(mdev);
kfree(digest);

out:
drbd_free_ee(mdev, e);

dec_unacked(mdev);

return ok;
Expand Down

0 comments on commit 612c940

Please sign in to comment.