• Nicholas Bellinger's avatar
    vhost-scsi: Take configfs group dependency during VHOST_SCSI_SET_ENDPOINT · ab8edab1
    Nicholas Bellinger authored
    This patch addresses a bug where individual vhost-scsi configfs endpoint
    groups can be removed from below while active exports to QEMU userspace
    still exist, resulting in an OOPs.
    
    It adds a configfs_depend_item() in vhost_scsi_set_endpoint() to obtain
    an explicit dependency on se_tpg->tpg_group in order to prevent individual
    vhost-scsi WWPN endpoints from being released via normal configfs methods
    while an QEMU ioctl reference still exists.
    
    Also, add matching configfs_undepend_item() in vhost_scsi_clear_endpoint()
    to release the dependency, once QEMU's reference to the individual group
    at /sys/kernel/config/target/vhost/$WWPN/$TPGT is released.
    
    (Fix up vhost_scsi_clear_endpoint() error path - DanC)
    
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Stefan Hajnoczi <stefanha@redhat.com>
    Cc: <stable@vger.kernel.org> # 3.6+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    ab8edab1
scsi.c 62.4 KB