On Mon, Aug 3, 2015 at 9:45 AM, Peter Lieven <p...@kamp.de> wrote: > Am 02.08.2015 um 13:42 schrieb Andrey Korolyov: >> >> Hello, >> >> As we will never pass LUN#0 as a storage lun, it would be better to >> prohibit this at least in iscsi.c, otherwise it will result in an FPU >> exception and emulator crash: >> >> traps: qemu-system-x86[32430] trap divide error ip:7f1dab7b5073 >> sp:7f1d713e4ae0 error:0 in block-iscsi.so[7f1dab7b0000+8000] >> >> 353 static bool is_request_lun_aligned(int64_t sector_num, int >> nb_sectors, >> 354 IscsiLun *iscsilun) >> 355 { >> 356 if ((sector_num * BDRV_SECTOR_SIZE) % iscsilun->block_size || >> 357 (nb_sectors * BDRV_SECTOR_SIZE) % iscsilun->block_size) { >> >> As far as I can see the LUN#0 can be thrown out on a top level, as one >> will never use it directly as an iSCSI backend. Please correct me if >> I`m wrong in this assumption. > > > Hi Andrey, > > LUN 0 is quite common on iSCSI targets. I think what causes the problem > is not the LUN ID, but the target which returns 0 for the blocksize. Which > target are you using? > > Peter
Hi Peter, I`ve mistyped lun for tgtd upon volume hotplug, which resulted in an accidental crash, there is nothing but human factor. Until only LUN0 may possess such unusual properties, I`d vote to explicitly work it around instead of adding generic protection from volumes with advertized zero block size.