crypto.c (d038d2645acabf6f52fd61baeaa021c3ebe97714) | crypto.c (c86422c5549c0983b4b4525b8f56a1c69dd67aa1) |
---|---|
1/* 2 * QEMU block full disk encryption 3 * 4 * Copyright (c) 2015-2016 Red Hat, Inc. 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either --- 517 unchanged lines hidden (view full) --- 526static void block_crypto_refresh_limits(BlockDriverState *bs, Error **errp) 527{ 528 BlockCrypto *crypto = bs->opaque; 529 uint64_t sector_size = qcrypto_block_get_sector_size(crypto->block); 530 bs->bl.request_alignment = sector_size; /* No sub-sector I/O */ 531} 532 533 | 1/* 2 * QEMU block full disk encryption 3 * 4 * Copyright (c) 2015-2016 Red Hat, Inc. 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either --- 517 unchanged lines hidden (view full) --- 526static void block_crypto_refresh_limits(BlockDriverState *bs, Error **errp) 527{ 528 BlockCrypto *crypto = bs->opaque; 529 uint64_t sector_size = qcrypto_block_get_sector_size(crypto->block); 530 bs->bl.request_alignment = sector_size; /* No sub-sector I/O */ 531} 532 533 |
534static int64_t block_crypto_getlength(BlockDriverState *bs) | 534static int64_t coroutine_fn block_crypto_co_getlength(BlockDriverState *bs) |
535{ 536 BlockCrypto *crypto = bs->opaque; | 535{ 536 BlockCrypto *crypto = bs->opaque; |
537 int64_t len = bdrv_getlength(bs->file->bs); | 537 int64_t len = bdrv_co_getlength(bs->file->bs); |
538 539 uint64_t offset = qcrypto_block_get_payload_offset(crypto->block); 540 assert(offset < INT64_MAX); 541 542 if (offset > len) { 543 return -EIO; 544 } 545 --- 402 unchanged lines hidden (view full) --- 948 .bdrv_co_truncate = block_crypto_co_truncate, 949 .create_opts = &block_crypto_create_opts_luks, 950 .amend_opts = &block_crypto_amend_opts_luks, 951 952 .bdrv_reopen_prepare = block_crypto_reopen_prepare, 953 .bdrv_refresh_limits = block_crypto_refresh_limits, 954 .bdrv_co_preadv = block_crypto_co_preadv, 955 .bdrv_co_pwritev = block_crypto_co_pwritev, | 538 539 uint64_t offset = qcrypto_block_get_payload_offset(crypto->block); 540 assert(offset < INT64_MAX); 541 542 if (offset > len) { 543 return -EIO; 544 } 545 --- 402 unchanged lines hidden (view full) --- 948 .bdrv_co_truncate = block_crypto_co_truncate, 949 .create_opts = &block_crypto_create_opts_luks, 950 .amend_opts = &block_crypto_amend_opts_luks, 951 952 .bdrv_reopen_prepare = block_crypto_reopen_prepare, 953 .bdrv_refresh_limits = block_crypto_refresh_limits, 954 .bdrv_co_preadv = block_crypto_co_preadv, 955 .bdrv_co_pwritev = block_crypto_co_pwritev, |
956 .bdrv_getlength = block_crypto_getlength, | 956 .bdrv_co_getlength = block_crypto_co_getlength, |
957 .bdrv_measure = block_crypto_measure, 958 .bdrv_get_info = block_crypto_get_info_luks, 959 .bdrv_get_specific_info = block_crypto_get_specific_info_luks, 960 .bdrv_amend_options = block_crypto_amend_options_luks, 961 .bdrv_co_amend = block_crypto_co_amend_luks, 962 .bdrv_amend_pre_run = block_crypto_amend_prepare, 963 .bdrv_amend_clean = block_crypto_amend_cleanup, 964 965 .is_format = true, 966 967 .strong_runtime_opts = block_crypto_strong_runtime_opts, 968}; 969 970static void block_crypto_init(void) 971{ 972 bdrv_register(&bdrv_crypto_luks); 973} 974 975block_init(block_crypto_init); | 957 .bdrv_measure = block_crypto_measure, 958 .bdrv_get_info = block_crypto_get_info_luks, 959 .bdrv_get_specific_info = block_crypto_get_specific_info_luks, 960 .bdrv_amend_options = block_crypto_amend_options_luks, 961 .bdrv_co_amend = block_crypto_co_amend_luks, 962 .bdrv_amend_pre_run = block_crypto_amend_prepare, 963 .bdrv_amend_clean = block_crypto_amend_cleanup, 964 965 .is_format = true, 966 967 .strong_runtime_opts = block_crypto_strong_runtime_opts, 968}; 969 970static void block_crypto_init(void) 971{ 972 bdrv_register(&bdrv_crypto_luks); 973} 974 975block_init(block_crypto_init); |