diff mbox series

[02/12] fsstress: check system call return values

Message ID 154290952081.1218.5326269464784776136.stgit@magnolia (mailing list archive)
State New, archived
Headers show
Series xfstests: add copy/dedupe/clone to fsx/fsstress | expand

Commit Message

Darrick J. Wong Nov. 22, 2018, 5:58 p.m. UTC
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(-)

Comments

Allison Henderson Nov. 24, 2018, 6:22 p.m. UTC | #1
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;
>
diff mbox series

Patch

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;