mirror of https://github.com/xqemu/xqemu.git
iscsi: simplify iscsi_co_discard
now that bdrv_co_discard can handle limits we do not need the request split logic here anymore. Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Peter Lieven <pl@kamp.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
ba6c59191f
commit
01a6a238a3
|
@ -87,7 +87,6 @@ typedef struct IscsiAIOCB {
|
||||||
#define NOP_INTERVAL 5000
|
#define NOP_INTERVAL 5000
|
||||||
#define MAX_NOP_FAILURES 3
|
#define MAX_NOP_FAILURES 3
|
||||||
#define ISCSI_CMD_RETRIES 5
|
#define ISCSI_CMD_RETRIES 5
|
||||||
#define ISCSI_MAX_UNMAP 131072
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
iscsi_bh_cb(void *p)
|
iscsi_bh_cb(void *p)
|
||||||
|
@ -912,8 +911,6 @@ coroutine_fn iscsi_co_discard(BlockDriverState *bs, int64_t sector_num,
|
||||||
IscsiLun *iscsilun = bs->opaque;
|
IscsiLun *iscsilun = bs->opaque;
|
||||||
struct IscsiTask iTask;
|
struct IscsiTask iTask;
|
||||||
struct unmap_list list;
|
struct unmap_list list;
|
||||||
uint32_t nb_blocks;
|
|
||||||
uint32_t max_unmap;
|
|
||||||
|
|
||||||
if (!is_request_lun_aligned(sector_num, nb_sectors, iscsilun)) {
|
if (!is_request_lun_aligned(sector_num, nb_sectors, iscsilun)) {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -925,19 +922,9 @@ coroutine_fn iscsi_co_discard(BlockDriverState *bs, int64_t sector_num,
|
||||||
}
|
}
|
||||||
|
|
||||||
list.lba = sector_qemu2lun(sector_num, iscsilun);
|
list.lba = sector_qemu2lun(sector_num, iscsilun);
|
||||||
nb_blocks = sector_qemu2lun(nb_sectors, iscsilun);
|
list.num = sector_qemu2lun(nb_sectors, iscsilun);
|
||||||
|
|
||||||
max_unmap = iscsilun->bl.max_unmap;
|
|
||||||
if (max_unmap == 0xffffffff) {
|
|
||||||
max_unmap = ISCSI_MAX_UNMAP;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (nb_blocks > 0) {
|
|
||||||
iscsi_co_init_iscsitask(iscsilun, &iTask);
|
iscsi_co_init_iscsitask(iscsilun, &iTask);
|
||||||
list.num = nb_blocks;
|
|
||||||
if (list.num > max_unmap) {
|
|
||||||
list.num = max_unmap;
|
|
||||||
}
|
|
||||||
retry:
|
retry:
|
||||||
if (iscsi_unmap_task(iscsilun->iscsi, iscsilun->lun, 0, 0, &list, 1,
|
if (iscsi_unmap_task(iscsilun->iscsi, iscsilun->lun, 0, 0, &list, 1,
|
||||||
iscsi_co_generic_cb, &iTask) == NULL) {
|
iscsi_co_generic_cb, &iTask) == NULL) {
|
||||||
|
@ -969,10 +956,6 @@ retry:
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
list.lba += list.num;
|
|
||||||
nb_blocks -= list.num;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue