linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Allison Henderson <allison.henderson@oracle.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>, guaneryu@gmail.com
Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org
Subject: Re: [PATCH 02/12] fsstress: check system call return values
Date: Sat, 24 Nov 2018 11:22:55 -0700	[thread overview]
Message-ID: <9b8e3de8-c763-03ea-e5ed-84284f7556eb@oracle.com> (raw)
In-Reply-To: <154290952081.1218.5326269464784776136.stgit@magnolia>

Looks ok, you can add my review:

Reviewed-By: Allison Henderson <allison.henderson@oracle.com>

Allison

On 11/22/18 10:58 AM, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
> 
> Check the return values of various system calls and blow up if something
> went wrong.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
>   ltp/fsstress.c |   56 ++++++++++++++++++++++++++++++--------------------------
>   1 file changed, 30 insertions(+), 26 deletions(-)
> 
> 
> diff --git a/ltp/fsstress.c b/ltp/fsstress.c
> index 8d0734fc..af5d125f 100644
> --- a/ltp/fsstress.c
> +++ b/ltp/fsstress.c
> @@ -733,7 +733,7 @@ append_pathname(pathname_t *name, char *str)
>   	/* attempting to append to a dir a zero length path */
>   	if (len && *str == '/' && name->len == 0) {
>   		fprintf(stderr, "fsstress: append_pathname failure\n");
> -		chdir(homedir);
> +		assert(chdir(homedir) == 0);
>   		abort();
>   		/* NOTREACHED */
>   	}
> @@ -765,7 +765,7 @@ attr_list_path(pathname_t *name,
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = attr_list_path(&newname, buffer, buffersize, flags, cursor);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -784,7 +784,7 @@ attr_remove_path(pathname_t *name, const char *attrname, int flags)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = attr_remove_path(&newname, attrname, flags);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -805,7 +805,7 @@ attr_set_path(pathname_t *name, const char *attrname, const char *attrvalue,
>   	if (chdir(buf) == 0) {
>   		rval = attr_set_path(&newname, attrname, attrvalue, valuelength,
>   			flags);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -819,7 +819,7 @@ check_cwd(void)
>   
>   	if (stat64(".", &statbuf) == 0 && statbuf.st_ino == top_ino)
>   		return;
> -	chdir(homedir);
> +	assert(chdir(homedir) == 0);
>   	fprintf(stderr, "fsstress: check_cwd failure\n");
>   	abort();
>   	/* NOTREACHED */
> @@ -858,7 +858,7 @@ creat_path(pathname_t *name, mode_t mode)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = creat_path(&newname, mode);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -996,11 +996,15 @@ doproc(void)
>   		}
>   	}
>   errout:
> -	chdir("..");
> +	assert(chdir("..") == 0);
>   	free(homedir);
>   	if (cleanup) {
> +		int ret;
> +
>   		sprintf(cmd, "rm -rf %s", buf);
> -		system(cmd);
> +		ret = system(cmd);
> +		if (ret != 0)
> +			perror("cleaning up");
>   		cleanup_flist();
>   	}
>   }
> @@ -1216,7 +1220,7 @@ lchown_path(pathname_t *name, uid_t owner, gid_t group)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = lchown_path(&newname, owner, group);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1240,7 +1244,7 @@ link_path(pathname_t *name1, pathname_t *name2)
>   	if (strcmp(buf1, buf2) == 0) {
>   		if (chdir(buf1) == 0) {
>   			rval = link_path(&newname1, &newname2);
> -			chdir("..");
> +			assert(chdir("..") == 0);
>   		}
>   	} else {
>   		if (strcmp(buf1, "..") == 0)
> @@ -1260,7 +1264,7 @@ link_path(pathname_t *name1, pathname_t *name2)
>   			append_pathname(&newname2, name2->path);
>   			if (chdir(buf1) == 0) {
>   				rval = link_path(&newname1, &newname2);
> -				chdir("..");
> +				assert(chdir("..") == 0);
>   			}
>   		} else {
>   			free_pathname(&newname1);
> @@ -1268,7 +1272,7 @@ link_path(pathname_t *name1, pathname_t *name2)
>   			append_pathname(&newname1, name1->path);
>   			if (chdir(buf2) == 0) {
>   				rval = link_path(&newname1, &newname2);
> -				chdir("..");
> +				assert(chdir("..") == 0);
>   			}
>   		}
>   	}
> @@ -1290,7 +1294,7 @@ lstat64_path(pathname_t *name, struct stat64 *sbuf)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = lstat64_path(&newname, sbuf);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1326,7 +1330,7 @@ mkdir_path(pathname_t *name, mode_t mode)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = mkdir_path(&newname, mode);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1345,7 +1349,7 @@ mknod_path(pathname_t *name, mode_t mode, dev_t dev)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = mknod_path(&newname, mode, dev);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1386,7 +1390,7 @@ open_path(pathname_t *name, int oflag)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = open_path(&newname, oflag);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1405,7 +1409,7 @@ opendir_path(pathname_t *name)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = opendir_path(&newname);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1446,7 +1450,7 @@ readlink_path(pathname_t *name, char *lbuf, size_t lbufsiz)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = readlink_path(&newname, lbuf, lbufsiz);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1470,7 +1474,7 @@ rename_path(pathname_t *name1, pathname_t *name2)
>   	if (strcmp(buf1, buf2) == 0) {
>   		if (chdir(buf1) == 0) {
>   			rval = rename_path(&newname1, &newname2);
> -			chdir("..");
> +			assert(chdir("..") == 0);
>   		}
>   	} else {
>   		if (strcmp(buf1, "..") == 0)
> @@ -1490,7 +1494,7 @@ rename_path(pathname_t *name1, pathname_t *name2)
>   			append_pathname(&newname2, name2->path);
>   			if (chdir(buf1) == 0) {
>   				rval = rename_path(&newname1, &newname2);
> -				chdir("..");
> +				assert(chdir("..") == 0);
>   			}
>   		} else {
>   			free_pathname(&newname1);
> @@ -1498,7 +1502,7 @@ rename_path(pathname_t *name1, pathname_t *name2)
>   			append_pathname(&newname1, name1->path);
>   			if (chdir(buf2) == 0) {
>   				rval = rename_path(&newname1, &newname2);
> -				chdir("..");
> +				assert(chdir("..") == 0);
>   			}
>   		}
>   	}
> @@ -1520,7 +1524,7 @@ rmdir_path(pathname_t *name)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = rmdir_path(&newname);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1603,7 +1607,7 @@ stat64_path(pathname_t *name, struct stat64 *sbuf)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = stat64_path(&newname, sbuf);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1627,7 +1631,7 @@ symlink_path(const char *name1, pathname_t *name)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = symlink_path(name1, &newname);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1646,7 +1650,7 @@ truncate64_path(pathname_t *name, off64_t length)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = truncate64_path(&newname, length);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> @@ -1665,7 +1669,7 @@ unlink_path(pathname_t *name)
>   	separate_pathname(name, buf, &newname);
>   	if (chdir(buf) == 0) {
>   		rval = unlink_path(&newname);
> -		chdir("..");
> +		assert(chdir("..") == 0);
>   	}
>   	free_pathname(&newname);
>   	return rval;
> 

  reply	other threads:[~2018-11-25  5:11 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22 17:58 [PATCH v3 00/12] xfstests: add copy/dedupe/clone to fsx/fsstress Darrick J. Wong
2018-11-22 17:58 ` [PATCH 01/12] fsstress: fix compiler warnings Darrick J. Wong
2018-11-24 18:22   ` Allison Henderson
2018-11-22 17:58 ` [PATCH 02/12] fsstress: check system call return values Darrick J. Wong
2018-11-24 18:22   ` Allison Henderson [this message]
2018-11-22 17:58 ` [PATCH 03/12] fsx: shut up compiler warnings Darrick J. Wong
2018-11-24 18:23   ` Allison Henderson
2018-11-22 17:58 ` [PATCH 04/12] fsx: always check buffer after each operation Darrick J. Wong
2018-11-24 18:24   ` Allison Henderson
2018-11-22 17:58 ` [PATCH 05/12] fsx: use an enum to define the operation commands Darrick J. Wong
2018-11-24 18:23   ` Allison Henderson
2018-11-22 17:59 ` [PATCH 06/12] fsx: add five-argument logging function Darrick J. Wong
2018-11-24 18:23   ` Allison Henderson
2018-11-22 17:59 ` [PATCH 07/12] fsx: add FICLONERANGE support Darrick J. Wong
2018-11-22 17:59 ` [PATCH 08/12] fsx: add FIDEDUPERANGE support Darrick J. Wong
2018-11-22 17:59 ` [PATCH 09/12] fsstress: add copy_file_range support Darrick J. Wong
2018-11-22 17:59 ` [PATCH 10/12] fsx: " Darrick J. Wong
2018-11-22 17:59 ` [PATCH 11/12] common/dump: disable copyrange Darrick J. Wong
2018-11-22 17:59 ` [PATCH 12/12] generic: long fsx soak tests Darrick J. Wong
2018-11-25 16:27   ` Eryu Guan
2018-11-26 20:50     ` Darrick J. Wong
  -- strict thread matches above, loose matches on Subject: below --
2018-12-07  6:23 [PATCH v4 00/12] xfstests: add copy/dedupe/clone to fsx/fsstress Darrick J. Wong
2018-12-07  6:23 ` [PATCH 02/12] fsstress: check system call return values Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9b8e3de8-c763-03ea-e5ed-84284f7556eb@oracle.com \
    --to=allison.henderson@oracle.com \
    --cc=darrick.wong@oracle.com \
    --cc=fstests@vger.kernel.org \
    --cc=guaneryu@gmail.com \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).