diff options
author | Douglas Gilbert <dgilbert@interlog.com> | 2021-03-03 20:46:45 +0000 |
---|---|---|
committer | Douglas Gilbert <dgilbert@interlog.com> | 2021-03-03 20:46:45 +0000 |
commit | 19b5bcdaf6a28ec9d8c08009ddbbbffefa91d692 (patch) | |
tree | e23193669a9ce25b666a7174e4abe49cdd934269 /lib/sg_pt_freebsd.c | |
parent | c85bc94aab90ec84da455d0c84449c7d747647f5 (diff) | |
download | sg3_utils-19b5bcdaf6a28ec9d8c08009ddbbbffefa91d692.tar.gz |
sg_ses: add --all (-a) option, same action as --join; another freebsd fix
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@878 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'lib/sg_pt_freebsd.c')
-rw-r--r-- | lib/sg_pt_freebsd.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/sg_pt_freebsd.c b/lib/sg_pt_freebsd.c index 180b582d..4a3845f6 100644 --- a/lib/sg_pt_freebsd.c +++ b/lib/sg_pt_freebsd.c @@ -7,7 +7,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ -/* sg_pt_freebsd version 1.38 20210221 */ +/* sg_pt_freebsd version 1.39 20210225 */ #include <stdio.h> #include <stdlib.h> @@ -166,7 +166,6 @@ scsi_pt_open_flags(const char * device_name, int oflags, int vb) struct freebsd_dev_channel *fdc_p = NULL; struct cam_device* cam_dev; struct stat a_stat; - char b[PATH_MAX]; char dev_nm[PATH_MAX]; // Search table for a free entry @@ -184,6 +183,8 @@ scsi_pt_open_flags(const char * device_name, int oflags, int vb) } first_ch = device_name[0]; if (('/' != first_ch) && ('.' != first_ch)) { + char b[PATH_MAX]; + /* Step 1: if device_name is symlink, follow it */ s = readlink(device_name, b, sizeof(b)); if (s <= 0) { @@ -220,11 +221,11 @@ scsi_pt_open_flags(const char * device_name, int oflags, int vb) nv_ctrlid = broadcast_nsid; possible_nvme = false; while (true) { /* dummy loop, so can 'break' out */ - if(sscanf(b, NVME_CTRLR_PREFIX "%u%c", &nv_ctrlid, &tmp) == 1) { + if(sscanf(dev_nm, NVME_CTRLR_PREFIX "%u%c", &nv_ctrlid, &tmp) == 1) { if(nv_ctrlid == broadcast_nsid) break; - } else if (sscanf(b, NVME_CTRLR_PREFIX "%d" NVME_NS_PREFIX "%d%c", - &nv_ctrlid, &nsid, &tmp) == 2) { + } else if (sscanf(dev_nm, NVME_CTRLR_PREFIX "%d" NVME_NS_PREFIX + "%d%c", &nv_ctrlid, &nsid, &tmp) == 2) { if((nv_ctrlid == broadcast_nsid) || (nsid == broadcast_nsid)) break; } else |