#
317792 |
|
04-May-2017 |
ken |
MFC r317657:
Fix camcontrol timestamp setting and update the man page.
camcontrol timestamp -s would somtimes fail due to stack garbage. Zero out the timestamp parameters to fix it.
Fix another nearby bug, and update the man page.
sbin/camcontrol/timestamp.c: In set_timestamp(), bzero ts_p prior to creating the timestamp. Previously stack garbage could cause some tape drives to reject the timestamp.
In set_timestamp(), check for failures from strptime().
sbin/camcontrol/camcontrol.8: Add the time argument to the -T option to camcontrol timestamp -s in the long description.
Change the time/date format used in the camcontrol timestamp example to RFC 2822 format. This fixes a time zone issue with the original example by specifying the time zone as -0600. Otherwise, the time zone seems to default to standard time in the current locale, which makes the time, when reported back from the drive, 1 hour off from the intended setting. This also fixes a duplicate day of the week ("Wednesday Wed") in the previous example.
Submitted by: Sam Klopsch Sponsored by: Spectra Logic
|
#
314220 |
|
24-Feb-2017 |
ken |
MFC r313893
------------------------------------------------------------------------ r313893 | ken | 2017-02-17 13:04:22 -0700 (Fri, 17 Feb 2017) | 48 lines
Add task attribute support to camcontrol(8).
Users can use the new generic argument, -Q task_attr, to specify a task attribute (simple, ordered, head of queue, aca) for the commands issued. The the default is simple, which works with all SCSI devices that support tagged queueing.
This will mostly be useful for debugging target behavior in certain situations.
You can try it out by compiling CTL with CTL_IO_DELAY turned on (in sys/cam/ctl/ctl_io.h) and then do something like this with one of the CTL LUNs:
ctladm delay 0:0 -l done -t 10 camcontrol tur da34 -v
And at then before the 10 second timer is up, in another terminal:
camcontrol inquiry da34 -Q ordered -v
The Inquiry should complete just after the TUR completes. Ordinarily it would complete first because of the delay injection, but because the task attribute is set to ordered in this case, CTL holds it up until the previous command has completed.
sbin/camcontrol/camcontrol.c: Add the new generic argument, -Q, which allows the user to specify a SCSI task attribute. The user can specify task attributes by name or numerically.
Add a new task_attr arguments to SCSI sub-functions.
sbin/camcontrol/attrib.c, sbin/camcontrol/camcontrol.h, sbin/camcontrol/fwdownload.c, sbin/camcontrol/modeedit.c, sbin/camcontrol/persist.c, sbin/camcontrol/timestamp.c, sbin/camcontrol/zone.c: Add the new task_attr argument to SCSI sub-functions.
sbin/camcontrol/camcontrol.8: Document the new -Q option, and add an example.
Sponsored by: Spectra Logic
------------------------------------------------------------------------
|
#
310174 |
|
16-Dec-2016 |
ken |
MFC r309374, r309513, r309839, r309840:
------------------------------------------------------------------------ r309374 | ken | 2016-12-01 15:20:27 -0700 (Thu, 01 Dec 2016) | 41 lines
Add SCSI REPORT TIMESTAMP and SET TIMESTAMP support.
This adds support to camcontrol(8) and libcam(3) for getting and setting the time on SCSI protocol drives. This is more commonly found on tape drives, but is a SPC (SCSI Primary Commands) command, and may be found on any device that speaks SCSI.
The new camcontrol timestamp subcommand allows getting the current device time or setting the time to the current system time or any arbitrary time.
sbin/camcontrol/Makefile: Add timestamp.c.
sbin/camcontrol/camcontrol.8: Document the new timestamp subcommand.
sbin/camcontrol/camcontrol.c: Add the timestamp subcommand to camcontrol.
sbin/camcontrol/camcontrol.h: Add the timestamp() function prototype.
sbin/camcontrol/timestamp.c: Timestamp setting and reporting functionality.
sys/cam/scsi/scsi_all.c: Add two new CCB building functions, scsi_set_timestamp() and scsi_report_timestamp(). Also, add a new helper function, scsi_create_timestamp().
sys/cam/scsi/scsi_all.h: Add CDB and parameter data for the the set and report timestamp commands.
Add function declarations for the new CCB building and helper functions.
Submitted by: Sam Klopsch Sponsored by: Spectra Logic
------------------------------------------------------------------------ r309513 | adrian | 2016-12-03 13:35:39 -0700 (Sat, 03 Dec 2016) | 7 lines
[camcontrol] init ts=0 to quieten gcc.
It "looks" like ts is set to something on success, and not modified on error.
Checked on IRC with: cem
------------------------------------------------------------------------ r309839 | ngie | 2016-12-10 16:26:34 -0700 (Sat, 10 Dec 2016) | 6 lines
free/NULL out variables prior to calling strdup to avoid leaking memory if arguments are specified more than once with "camcontrol timestamp".
CID: 1366829, 1366831
------------------------------------------------------------------------ r309840 | ngie | 2016-12-10 16:58:14 -0700 (Sat, 10 Dec 2016) | 8 lines
Cut to the chase and just call free instead of free(x) + x = NULL
NULLing out x wasn't required as the memory was immediately scribbled over with strdup in the following call.
Submitted by: imp
------------------------------------------------------------------------
|