Looking for a committer for cam fixes / enhancements
Kenneth D. Merry
ken at freebsd.org
Tue Oct 25 17:31:49 UTC 2011
On Tue, Oct 25, 2011 at 00:45:05 +0100, Steven Hartland wrote:
>
> ----- Original Message -----
> From: "Kenneth D. Merry" <ken at freebsd.org>
>
> >Thanks for doing these! They seem like they would be very useful.
> >Hopefully, once we get trim support plumbed all the way down, it
> >won't be necessary to issue the erase manually.
>
> Indeed, would so love to see trim added to zfs :)
>
> >I do have a few comments:
> >
> >- The patches should be generated against head, since they would be
> > committed there first and merged back. (They don't apply cleanly to
> > head.)
> >
> >- There are a number of style issues in the patches:
> >- Lines longer than 80 characters
> >- Spaces/formatting problems (e.g. at the beginning of
> > atasecurity_erase()).
> >- The prevailing style of the file isn't followed for line
> > continuations. (It isn't always KNF, either.)
> >
> >- I'm not really a fan of getopt_long. There are lots of password
> > arguments, how about turning those into '-p foopasswd=bar' instead?
> >
> >Anyway, if you could, please address those things and send me the diffs.
>
> Thanks for the feedback. I will get them updated as per comments as
> soon as I can.
>
> Could you give me some points on the things you spotted weren't "KNR"
> I've tried to stick with what I saw as the current formatting but clearly
> missed something's ;-)
To match the rest of the file this:
static int
atasecurity_set_password(struct cam_device *device, union ccb *ccb, int retry_count,
u_int32_t timeout, struct ata_security_password *pwd, int quiet)
{
Should look like this:
static int
atasecurity_set_password(struct cam_device *device, union ccb *ccb,
int retry_count, u_int32_t timeout,
struct ata_security_password *pwd, int quiet)
{
And this:
cam_fill_ataio(&ccb->ataio,
retry_count,
NULL,
/*flags*/CAM_DIR_OUT,
MSG_SIMPLE_Q_TAG,
/*data_ptr*/(u_int8_t *)pwd,
/*dxfer_len*/sizeof(struct ata_security_password),
timeout);
Shoud look like this:
cam_fill_ataio(&ccb->ataio,
retry_count,
NULL,
/*flags*/CAM_DIR_OUT,
MSG_SIMPLE_Q_TAG,
/*data_ptr*/(u_int8_t *)pwd,
/*dxfer_len*/sizeof(struct ata_security_password),
timeout);
Everything that exceeds 80 columns should not exceed that. Make sure the
tab stop in your editor is set to 8 when editing code. That helps uncover
things like this (in atasecurity()):
while ((c = getopt_long(argc, argv, combinedopt, combinedoptlong, NULL)) != -1) {
switch(c){
case 'f':
action = ATA_SECURITY_ACTION_FREEZE;
actions++;
break;
case 'r':
With a tabstop set to 4, that particular space/tab problem "hides".
> Not really a fan myself of mixing in getopt_long either but if beats the
> current use of totally random / meaningless letters for options if we
> stuck with short opts. Add that to how dangerous the options are and I
> think forcing long opts is the right move, what do others think?
I'm not suggesting short options, but a slightly different approach.
Instead of --option, or -r, use -o foopassword=blah.
It might be interesting to do this:
cd src
find bin sbin usr.sbin usr.bin -name "*.c" -print |xargs grep getopt_long
The list of programs that use getopt_long() is very short, and almost all
of them are either GNU programs, or maintaining compatibility with GNU
programs (e.g. tar, cpio)
Ken
--
Kenneth Merry
ken at FreeBSD.ORG
More information about the freebsd-scsi
mailing list