Am 03.08.2015 um 09:47 schrieb Andrey Korolyov:
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.
I will work out a patch that forbids to mount a LUN with zero blocksize.
Peter