mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 16:16:56 +07:00
drbd: drbd_send_drequest_csum(): Return 0 upon success and an error code otherwise
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
This commit is contained in:
parent
6c1005e74d
commit
db1b0b724e
@ -1320,7 +1320,7 @@ int drbd_send_drequest(struct drbd_conf *mdev, int cmd,
|
|||||||
int drbd_send_drequest_csum(struct drbd_conf *mdev, sector_t sector, int size,
|
int drbd_send_drequest_csum(struct drbd_conf *mdev, sector_t sector, int size,
|
||||||
void *digest, int digest_size, enum drbd_packet cmd)
|
void *digest, int digest_size, enum drbd_packet cmd)
|
||||||
{
|
{
|
||||||
int ok;
|
int err;
|
||||||
struct p_block_req p;
|
struct p_block_req p;
|
||||||
|
|
||||||
prepare_header(mdev, &p.head, cmd, sizeof(p) - sizeof(struct p_header) + digest_size);
|
prepare_header(mdev, &p.head, cmd, sizeof(p) - sizeof(struct p_header) + digest_size);
|
||||||
@ -1329,13 +1329,11 @@ int drbd_send_drequest_csum(struct drbd_conf *mdev, sector_t sector, int size,
|
|||||||
p.blksize = cpu_to_be32(size);
|
p.blksize = cpu_to_be32(size);
|
||||||
|
|
||||||
mutex_lock(&mdev->tconn->data.mutex);
|
mutex_lock(&mdev->tconn->data.mutex);
|
||||||
|
err = drbd_send_all(mdev->tconn, mdev->tconn->data.socket, &p, sizeof(p), 0);
|
||||||
ok = (sizeof(p) == drbd_send(mdev->tconn, mdev->tconn->data.socket, &p, sizeof(p), 0));
|
if (!err)
|
||||||
ok = ok && (digest_size == drbd_send(mdev->tconn, mdev->tconn->data.socket, digest, digest_size, 0));
|
err = drbd_send_all(mdev->tconn, mdev->tconn->data.socket, digest, digest_size, 0);
|
||||||
|
|
||||||
mutex_unlock(&mdev->tconn->data.mutex);
|
mutex_unlock(&mdev->tconn->data.mutex);
|
||||||
|
return err;
|
||||||
return ok;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int drbd_send_ov_request(struct drbd_conf *mdev, sector_t sector, int size)
|
int drbd_send_ov_request(struct drbd_conf *mdev, sector_t sector, int size)
|
||||||
|
@ -324,9 +324,9 @@ static int w_e_send_csum(struct drbd_work *w, int cancel)
|
|||||||
drbd_free_ee(mdev, peer_req);
|
drbd_free_ee(mdev, peer_req);
|
||||||
peer_req = NULL;
|
peer_req = NULL;
|
||||||
inc_rs_pending(mdev);
|
inc_rs_pending(mdev);
|
||||||
ok = drbd_send_drequest_csum(mdev, sector, size,
|
ok = !drbd_send_drequest_csum(mdev, sector, size,
|
||||||
digest, digest_size,
|
digest, digest_size,
|
||||||
P_CSUM_RS_REQUEST);
|
P_CSUM_RS_REQUEST);
|
||||||
kfree(digest);
|
kfree(digest);
|
||||||
} else {
|
} else {
|
||||||
dev_err(DEV, "kmalloc() of digest failed.\n");
|
dev_err(DEV, "kmalloc() of digest failed.\n");
|
||||||
@ -1089,9 +1089,9 @@ int w_e_end_ov_req(struct drbd_work *w, int cancel)
|
|||||||
drbd_free_ee(mdev, peer_req);
|
drbd_free_ee(mdev, peer_req);
|
||||||
peer_req = NULL;
|
peer_req = NULL;
|
||||||
inc_rs_pending(mdev);
|
inc_rs_pending(mdev);
|
||||||
ok = drbd_send_drequest_csum(mdev, sector, size,
|
ok = !drbd_send_drequest_csum(mdev, sector, size,
|
||||||
digest, digest_size,
|
digest, digest_size,
|
||||||
P_OV_REPLY);
|
P_OV_REPLY);
|
||||||
if (!ok)
|
if (!ok)
|
||||||
dec_rs_pending(mdev);
|
dec_rs_pending(mdev);
|
||||||
kfree(digest);
|
kfree(digest);
|
||||||
|
Loading…
Reference in New Issue
Block a user