[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv2 11/11] iscsi: assert that sectors are aligned
From: |
Peter Lieven |
Subject: |
Re: [Qemu-devel] [PATCHv2 11/11] iscsi: assert that sectors are aligned to LUN blocksize |
Date: |
Wed, 10 Jul 2013 16:02:36 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120827 Thunderbird/15.0 |
Am 10.07.2013 13:38, schrieb Kevin Wolf:
> Am 27.06.2013 um 15:11 hat Peter Lieven geschrieben:
>> if the blocksize of an iSCSI LUN is bigger than the BDRV_SECTOR_SIZE
>> it is possible that sector_num or nb_sectors are not correctly
>> alligned.
>>
>> to avoid corruption we fail requests which are misaligned.
>>
>> Signed-off-by: Peter Lieven <address@hidden>
>> ---
>> block/iscsi.c | 27 +++++++++++++++++++++++++++
>> 1 file changed, 27 insertions(+)
>>
>> diff --git a/block/iscsi.c b/block/iscsi.c
>> index 0567b46..bff2e1f 100644
>> --- a/block/iscsi.c
>> +++ b/block/iscsi.c
>> @@ -298,6 +298,13 @@ static int64_t sector_lun2qemu(int64_t sector, IscsiLun
>> *iscsilun)
>> return sector * iscsilun->block_size / BDRV_SECTOR_SIZE;
>> }
>>
>> +static int64_t is_request_lun_aligned(int64_t sector_num, int nb_sectors,
>> + IscsiLun *iscsilun)
> This should certainly return bool instead of int64_t?
yes
>
>> +{
>> + return ((sector_num * BDRV_SECTOR_SIZE) % iscsilun->block_size ||
>> + (nb_sectors * BDRV_SECTOR_SIZE) % iscsilun->block_size) ? 0 : 1;
> 'x ? 0 : 1' is usually written '!x'.
ok
>
> Kevin