Commit ade406775d3795141927bdd581edee2cb44da864

Authored by Kevin Wolf
Committed by Anthony Liguori
1 parent cab3c825

qcow/qcow2: Drop synchronous qcow_write()

There is only one (internal) user left and it can be switched to the normal
emulation provided in block.c

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing 2 changed files with 2 additions and 77 deletions
block/qcow.c
@@ -488,41 +488,6 @@ static int qcow_read(BlockDriverState *bs, int64_t sector_num, @@ -488,41 +488,6 @@ static int qcow_read(BlockDriverState *bs, int64_t sector_num,
488 } 488 }
489 #endif 489 #endif
490 490
491 -static int qcow_write(BlockDriverState *bs, int64_t sector_num,  
492 - const uint8_t *buf, int nb_sectors)  
493 -{  
494 - BDRVQcowState *s = bs->opaque;  
495 - int ret, index_in_cluster, n;  
496 - uint64_t cluster_offset;  
497 -  
498 - while (nb_sectors > 0) {  
499 - index_in_cluster = sector_num & (s->cluster_sectors - 1);  
500 - n = s->cluster_sectors - index_in_cluster;  
501 - if (n > nb_sectors)  
502 - n = nb_sectors;  
503 - cluster_offset = get_cluster_offset(bs, sector_num << 9, 1, 0,  
504 - index_in_cluster,  
505 - index_in_cluster + n);  
506 - if (!cluster_offset)  
507 - return -1;  
508 - if (s->crypt_method) {  
509 - encrypt_sectors(s, sector_num, s->cluster_data, buf, n, 1,  
510 - &s->aes_encrypt_key);  
511 - ret = bdrv_pwrite(s->hd, cluster_offset + index_in_cluster * 512,  
512 - s->cluster_data, n * 512);  
513 - } else {  
514 - ret = bdrv_pwrite(s->hd, cluster_offset + index_in_cluster * 512, buf, n * 512);  
515 - }  
516 - if (ret != n * 512)  
517 - return -1;  
518 - nb_sectors -= n;  
519 - sector_num += n;  
520 - buf += n * 512;  
521 - }  
522 - s->cluster_cache_offset = -1; /* disable compressed cache */  
523 - return 0;  
524 -}  
525 -  
526 typedef struct QCowAIOCB { 491 typedef struct QCowAIOCB {
527 BlockDriverAIOCB common; 492 BlockDriverAIOCB common;
528 int64_t sector_num; 493 int64_t sector_num;
@@ -904,7 +869,7 @@ static int qcow_write_compressed(BlockDriverState *bs, int64_t sector_num, @@ -904,7 +869,7 @@ static int qcow_write_compressed(BlockDriverState *bs, int64_t sector_num,
904 869
905 if (ret != Z_STREAM_END || out_len >= s->cluster_size) { 870 if (ret != Z_STREAM_END || out_len >= s->cluster_size) {
906 /* could not compress: write normal cluster */ 871 /* could not compress: write normal cluster */
907 - qcow_write(bs, sector_num, buf, s->cluster_sectors); 872 + bdrv_write(bs, sector_num, buf, s->cluster_sectors);
908 } else { 873 } else {
909 cluster_offset = get_cluster_offset(bs, sector_num << 9, 2, 874 cluster_offset = get_cluster_offset(bs, sector_num << 9, 2,
910 out_len, 0, 0); 875 out_len, 0, 0);
block/qcow2.c
@@ -1229,46 +1229,6 @@ static int qcow_read(BlockDriverState *bs, int64_t sector_num, @@ -1229,46 +1229,6 @@ static int qcow_read(BlockDriverState *bs, int64_t sector_num,
1229 return 0; 1229 return 0;
1230 } 1230 }
1231 1231
1232 -static int qcow_write(BlockDriverState *bs, int64_t sector_num,  
1233 - const uint8_t *buf, int nb_sectors)  
1234 -{  
1235 - BDRVQcowState *s = bs->opaque;  
1236 - int ret, index_in_cluster, n;  
1237 - uint64_t cluster_offset;  
1238 - int n_end;  
1239 - QCowL2Meta l2meta;  
1240 -  
1241 - while (nb_sectors > 0) {  
1242 - index_in_cluster = sector_num & (s->cluster_sectors - 1);  
1243 - n_end = index_in_cluster + nb_sectors;  
1244 - if (s->crypt_method &&  
1245 - n_end > QCOW_MAX_CRYPT_CLUSTERS * s->cluster_sectors)  
1246 - n_end = QCOW_MAX_CRYPT_CLUSTERS * s->cluster_sectors;  
1247 - cluster_offset = alloc_cluster_offset(bs, sector_num << 9,  
1248 - index_in_cluster,  
1249 - n_end, &n, &l2meta);  
1250 - if (!cluster_offset)  
1251 - return -1;  
1252 - if (s->crypt_method) {  
1253 - encrypt_sectors(s, sector_num, s->cluster_data, buf, n, 1,  
1254 - &s->aes_encrypt_key);  
1255 - ret = bdrv_pwrite(s->hd, cluster_offset + index_in_cluster * 512,  
1256 - s->cluster_data, n * 512);  
1257 - } else {  
1258 - ret = bdrv_pwrite(s->hd, cluster_offset + index_in_cluster * 512, buf, n * 512);  
1259 - }  
1260 - if (ret != n * 512 || alloc_cluster_link_l2(bs, cluster_offset, &l2meta) < 0) {  
1261 - free_any_clusters(bs, cluster_offset, l2meta.nb_clusters);  
1262 - return -1;  
1263 - }  
1264 - nb_sectors -= n;  
1265 - sector_num += n;  
1266 - buf += n * 512;  
1267 - }  
1268 - s->cluster_cache_offset = -1; /* disable compressed cache */  
1269 - return 0;  
1270 -}  
1271 -  
1272 typedef struct QCowAIOCB { 1232 typedef struct QCowAIOCB {
1273 BlockDriverAIOCB common; 1233 BlockDriverAIOCB common;
1274 int64_t sector_num; 1234 int64_t sector_num;
@@ -1834,7 +1794,7 @@ static int qcow_write_compressed(BlockDriverState *bs, int64_t sector_num, @@ -1834,7 +1794,7 @@ static int qcow_write_compressed(BlockDriverState *bs, int64_t sector_num,
1834 1794
1835 if (ret != Z_STREAM_END || out_len >= s->cluster_size) { 1795 if (ret != Z_STREAM_END || out_len >= s->cluster_size) {
1836 /* could not compress: write normal cluster */ 1796 /* could not compress: write normal cluster */
1837 - qcow_write(bs, sector_num, buf, s->cluster_sectors); 1797 + bdrv_write(bs, sector_num, buf, s->cluster_sectors);
1838 } else { 1798 } else {
1839 cluster_offset = alloc_compressed_cluster_offset(bs, sector_num << 9, 1799 cluster_offset = alloc_compressed_cluster_offset(bs, sector_num << 9,
1840 out_len); 1800 out_len);