• Mike Christie's avatar
    ibft: fix target info parsing in ibft module · bb8fb4e6
    Mike Christie authored
    I got this patch through Red Hat's bugzilla from the bug submitter and
    patch creator.  I have just fixed it up so it applies without fuzz to
    upstream kernels.
    
    Original patch and description from Shyam kumar Iyer:
    
    The issue [ibft module not displaying targets with short names] is because
    of an offset calculatation error in the iscsi_ibft.c code.  Due to this
    error directory structure for the target in /sys/firmware/ibft does not
    get created and so the initiator is unable to connect to the target.
    
    Note that this bug surfaced only with an name that had a short section at
    the end.  eg: "iqn.1984-05.com.dell:dell".  It did not surface when the
    iqn's had a longer section at the end.  eg:
    "iqn.2001-04.com.example:storage.disk2.sys1.xyz"
    
    So, the eot_offset was calculated such that an extra 48 bytes i.e.  the
    size of the ibft_header which has already been accounted was subtracted
    twice.
    
    This was not evident with longer iqn names because they would overshoot
    the total ibft length more than 48 bytes and thus would escape the bug.
    Signed-off-by: default avatarShyam Kumar Iyer <shyam_iyer@dell.com>
    Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
    Cc: Konrad Rzeszutek <konrad@virtualiron.com>
    Cc: Peter Jones <pjones@redhat.com>
    Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
    Cc: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    bb8fb4e6
iscsi_ibft.c 23.1 KB