Loading drivers/block/drbd/drbd_main.c +21 −12 Original line number Diff line number Diff line Loading @@ -2140,7 +2140,13 @@ int fill_bitmap_rle_bits(struct drbd_conf *mdev, return len; } enum { OK, FAILED, DONE } /** * send_bitmap_rle_or_plain * * Return 0 when done, 1 when another iteration is needed, and a negative error * code upon failure. */ static int send_bitmap_rle_or_plain(struct drbd_conf *mdev, struct p_header80 *h, struct bm_xfer_ctx *c) { Loading @@ -2152,7 +2158,7 @@ send_bitmap_rle_or_plain(struct drbd_conf *mdev, len = fill_bitmap_rle_bits(mdev, p, c); if (len < 0) return FAILED; return -EIO; if (len) { DCBP_set_code(p, RLE_VLI_Bits); Loading Loading @@ -2182,11 +2188,14 @@ send_bitmap_rle_or_plain(struct drbd_conf *mdev, if (c->bit_offset > c->bm_bits) c->bit_offset = c->bm_bits; } ok = ok ? ((len == 0) ? DONE : OK) : FAILED; if (ok == DONE) if (ok) { if (len == 0) { INFO_bm_xfer_stats(mdev, "send", c); return ok; return 0; } else return 1; } return -EIO; } /* See the comment at receive_bitmap() */ Loading @@ -2194,7 +2203,7 @@ int _drbd_send_bitmap(struct drbd_conf *mdev) { struct bm_xfer_ctx c; struct p_header80 *p; int ret; int err; ERR_IF(!mdev->bitmap) return false; Loading Loading @@ -2229,11 +2238,11 @@ int _drbd_send_bitmap(struct drbd_conf *mdev) }; do { ret = send_bitmap_rle_or_plain(mdev, p, &c); } while (ret == OK); err = send_bitmap_rle_or_plain(mdev, p, &c); } while (err > 0); free_page((unsigned long) p); return (ret == DONE); return err == 0; } int drbd_send_bitmap(struct drbd_conf *mdev) Loading Loading
drivers/block/drbd/drbd_main.c +21 −12 Original line number Diff line number Diff line Loading @@ -2140,7 +2140,13 @@ int fill_bitmap_rle_bits(struct drbd_conf *mdev, return len; } enum { OK, FAILED, DONE } /** * send_bitmap_rle_or_plain * * Return 0 when done, 1 when another iteration is needed, and a negative error * code upon failure. */ static int send_bitmap_rle_or_plain(struct drbd_conf *mdev, struct p_header80 *h, struct bm_xfer_ctx *c) { Loading @@ -2152,7 +2158,7 @@ send_bitmap_rle_or_plain(struct drbd_conf *mdev, len = fill_bitmap_rle_bits(mdev, p, c); if (len < 0) return FAILED; return -EIO; if (len) { DCBP_set_code(p, RLE_VLI_Bits); Loading Loading @@ -2182,11 +2188,14 @@ send_bitmap_rle_or_plain(struct drbd_conf *mdev, if (c->bit_offset > c->bm_bits) c->bit_offset = c->bm_bits; } ok = ok ? ((len == 0) ? DONE : OK) : FAILED; if (ok == DONE) if (ok) { if (len == 0) { INFO_bm_xfer_stats(mdev, "send", c); return ok; return 0; } else return 1; } return -EIO; } /* See the comment at receive_bitmap() */ Loading @@ -2194,7 +2203,7 @@ int _drbd_send_bitmap(struct drbd_conf *mdev) { struct bm_xfer_ctx c; struct p_header80 *p; int ret; int err; ERR_IF(!mdev->bitmap) return false; Loading Loading @@ -2229,11 +2238,11 @@ int _drbd_send_bitmap(struct drbd_conf *mdev) }; do { ret = send_bitmap_rle_or_plain(mdev, p, &c); } while (ret == OK); err = send_bitmap_rle_or_plain(mdev, p, &c); } while (err > 0); free_page((unsigned long) p); return (ret == DONE); return err == 0; } int drbd_send_bitmap(struct drbd_conf *mdev) Loading