dev_warn(DEV,
"short read receiving data reply digest: read %d expected %d\n",
rr, dgs);
- return 0;
+ return rr < 0 ? rr : -EIO;
}
}
dev_warn(DEV, "short read receiving data reply: "
"read %d expected %d\n",
rr, expect);
- return 0;
+ return rr < 0 ? rr : -EIO;
}
data_size -= rr;
}
drbd_csum_bio(mdev, mdev->tconn->integrity_r_tfm, bio, dig_vv);
if (memcmp(dig_in, dig_vv, dgs)) {
dev_err(DEV, "Digest integrity check FAILED. Broken NICs?\n");
- return 0;
+ return -EINVAL;
}
}
D_ASSERT(data_size == 0);
- return 1;
+ return 0;
}
/* e_end_resync_block() is called via
/* hlist_del(&req->collision) is done in _req_may_be_done, to avoid
* special casing it there for the various failure cases.
* still no race with drbd_fail_pending_reads */
- ok = recv_dless_read(mdev, req, sector, data_size);
+ ok = !recv_dless_read(mdev, req, sector, data_size);
if (ok)
req_mod(req, DATA_RECEIVED);