Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:13.1:Update
s390-tools
s390-tools-sles11sp2-lsluns-fix-checks-for-sg.p...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File s390-tools-sles11sp2-lsluns-fix-checks-for-sg.patch of Package s390-tools
Subject: [PATCH] [BZ 81636] lsluns: Fix checks for scsi generic (sg) functionality. From: Seshagiri N Ippili <seshagiri.ippili@in.ibm.com> Description: lsluns: Fix checks for scsi generic (sg) functionality. Symptom: lsluns fails, to list available luns and to show attached luns with option "-a". Problem: lsluns checks for sg functionality before scanning available luns or showing attached luns. Solution: Remove early sg availability check. Allow lsluns to execute first, to add LUN0 & WLUN with unit_add to report available luns. unit_add triggers sg to load via scsi mid layer. Check for sg functionality after LUN scan attempt. Check for the availability of sg functionality to show attached luns only if there is at least one scsi device. Problem-ID: 81636 --- zconf/lsluns | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) --- a/zconf/lsluns +++ b/zconf/lsluns @@ -15,6 +15,7 @@ use warnings; use English; use Getopt::Long; use File::Basename; +use File::Glob; my %res_hash = (); my @adapter = (); @@ -23,13 +24,13 @@ my $active = ""; my $wlun = "0xc101000000000000"; my $lun0 = "0x0000000000000000"; +my $sg_dir = "/sys/class/scsi_generic"; sub list_luns { my %lun_hash = get_lun_hash(); my $drv_dir = "/sys/bus/ccw/drivers/zfcp"; - my $sg_dir = "/sys/class/scsi_generic"; my $man_att; foreach my $a (sort keys %res_hash) { @@ -89,6 +90,9 @@ sub list_luns last if ($retries > 3); } } + if (! -d $sg_dir) { + print "$PROGRAM_NAME: Error: Please load/configure SCSI Generic (sg) to use $PROGRAM_NAME.\n"; + } } } @@ -98,7 +102,7 @@ sub get_lun_hash { my %lun_hash; - foreach my $device (</sys/class/scsi_generic/sg*>) { + foreach my $device (</$sg_dir/sg*>) { my $l = `cat $device/device/fcp_lun`; my $p = `cat $device/device/wwpn`; my $a = `cat $device/device/hba_id`; @@ -207,6 +211,9 @@ sub show_attached_lun_info "CD/DVD", "Scanner", "OMD", "Changer","Comm","n/a", "n/a","RAID", "Encl"); + if (glob("/sys/class/scsi_device/*") && (! -d $sg_dir)) { + print "$PROGRAM_NAME: Error: Please load/configure SCSI Generic (sg) to use $PROGRAM_NAME.\n"; + } foreach my $a (sort keys %lun_hash) { next if ("@adapter" !~ /$a/); print "adapter = $a\n"; @@ -271,8 +278,6 @@ push @port, map { @{$res_hash{$_}} } key die "$PROGRAM_NAME: Unable to execute due to missing sg3_utils package. ". "Processing stopped.\n" if system("sg_luns -V > /dev/null 2>&1"); -die "$PROGRAM_NAME: Error: SCSI generic (sg) functionality is required. ". - "Please load/configure sg to use $PROGRAM_NAME.\n" if (! -d "/sys/class/scsi_generic"); if ($active) { show_attached_lun_info();
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor