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