Revision 8732901e
b/blockdev.c | ||
---|---|---|
1118 | 1118 |
void qmp_block_resize(const char *device, int64_t size, Error **errp) |
1119 | 1119 |
{ |
1120 | 1120 |
BlockDriverState *bs; |
1121 |
int ret; |
|
1121 | 1122 |
|
1122 | 1123 |
bs = bdrv_find(device); |
1123 | 1124 |
if (!bs) { |
... | ... | |
1133 | 1134 |
/* complete all in-flight operations before resizing the device */ |
1134 | 1135 |
bdrv_drain_all(); |
1135 | 1136 |
|
1136 |
switch (bdrv_truncate(bs, size)) { |
|
1137 |
ret = bdrv_truncate(bs, size); |
|
1138 |
switch (ret) { |
|
1137 | 1139 |
case 0: |
1138 | 1140 |
break; |
1139 | 1141 |
case -ENOMEDIUM: |
... | ... | |
1149 | 1151 |
error_set(errp, QERR_DEVICE_IN_USE, device); |
1150 | 1152 |
break; |
1151 | 1153 |
default: |
1152 |
error_set(errp, QERR_UNDEFINED_ERROR);
|
|
1154 |
error_setg_errno(errp, -ret, "Could not resize");
|
|
1153 | 1155 |
break; |
1154 | 1156 |
} |
1155 | 1157 |
} |
Also available in: Unified diff