drbd: fix NULL pointer deref in blk_add_request_payload
Discards don't have any payload. But the scsi layer still expects a bio_vec it can use internally, see sd_setup_discard_cmnd() and blk_add_request_payload(). Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
0ffbce80c2
commit
54ed4ed8f9
|
@ -1337,8 +1337,11 @@ int drbd_submit_peer_request(struct drbd_device *device,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Discards don't have any payload.
|
||||
* But the scsi layer still expects a bio_vec it can use internally,
|
||||
* see sd_setup_discard_cmnd() and blk_add_request_payload(). */
|
||||
if (peer_req->flags & EE_IS_TRIM)
|
||||
nr_pages = 0; /* discards don't have any payload. */
|
||||
nr_pages = 1;
|
||||
|
||||
/* In most cases, we will only need one bio. But in case the lower
|
||||
* level restrictions happen to be different at this offset on this
|
||||
|
|
Loading…
Reference in New Issue
Block a user