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