Re: [PATCH] xfs_io: implement 'utimes' command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>> +     if (argc != 5)
>> +             return command_usage(&utimes_cmd);
>
> Because you set argsmin & argsmax to 4, it should be impossible
> to get here with anything other than argc=5 - it's caught
> elsewhere:

Yes, you are right. This was something I was using to debug.
I will remove this. Thanks.

>> +     /* Get the timestamps */
>> +     result = timespec_from_string(argv[1], argv[2], &t[0]);
>> +     if (result) {
>> +             fprintf(stderr, "Bad value for atime\n");
>> +             return 1;
>> +     }
>> +     result = timespec_from_string(argv[3], argv[4], &t[1]);
>> +     if (result) {
>> +             fprintf(stderr, "Bad value for mtime\n");
>> +             return 1;
>> +     }
>> +
>> +     /* Call futimens to update time. */
>> +     if (futimens(file->fd, t)) {
>> +             perror("futimens");
>> +             return 1;
>> +     }
>
> Most xfs_io functions return 0 even on errors, possibly after
> setting exit_code = 1 to change the ultimate exit code;
> returning 1 will cause all processing to stop, and/or kick you
> out of the interactive shell:
>
> $ xfs_io file
> xfs_io> utimes a b c d
> Bad value for atime
> $
>
> This needs some attention across all of xfs_io, but you might want
> to return 0 for now for consistency with other commands.

Will change to return 0 always. Thanks.

>>  /*
>> + * Convert from a pair of arbitrary user strings into a timespec.
>> + */
>> +
>> +int
>> +timespec_from_string(
>> +     const char      * secs,
>> +     const char      * nsecs,
>> +     struct timespec * ts)
>> +{
>> +     char* p;
>> +     if (!secs || !nsecs || !ts)
>> +             return -1;
>> +     ts->tv_sec = strtoull(secs, &p, 0);
>> +     if (*p)
>> +             return -1;
>> +     ts->tv_nsec = strtoull(nsecs, &p, 0);
>> +     if (*p)
>> +             return -1;
>> +     return 0;
>
> I'd return 1/0 not -1/0 - not that big a deal, but the reason
> the i.e. prid_from_string() functions return -1 on error
> is because they actually return an ID, which is >= 0, so
> it detects "== -1" as an error, and can't simply test
> 1/0.

Ok. Will change this to return 1/0.

>> diff --git a/man/man8/xfs_io.8 b/man/man8/xfs_io.8
>> index 2c56f09..3ffe439 100644
>> --- a/man/man8/xfs_io.8
>> +++ b/man/man8/xfs_io.8
>> @@ -589,6 +589,17 @@ Copy data into the open file beginning at
>>  Copy up to
>>  .I length
>>  bytes of data.
>> +.RE
>> +.PD
>> +.TP
>> +.TP
>
> don't need two .TPs, a patch to remove the others is pending.

Ok, will remove it.

I will wait for a couple of days to see if there are any more comments
before submitting a v2.

-Deepa
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux