fstests.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration
@ 2021-04-26  6:23 Yang Xu
  2021-04-26  6:23 ` [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2 Yang Xu
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Yang Xu @ 2021-04-26  6:23 UTC (permalink / raw)
  To: fstests; +Cc: Yang Xu

When compile them on old gcc, get the following error
mount-idmapped.c: In function 'parse_map':
mount-idmapped.c:154:2: error: 'for' loop initial declarations are only allowed in C99 mode
  for (int i = 0; i < 2; i++) {

Fix them by declaring them at the beginning instead of in loop.

Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
---
 src/detached_mounts_propagation.c    | 4 ++--
 src/idmapped-mounts/mount-idmapped.c | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/detached_mounts_propagation.c b/src/detached_mounts_propagation.c
index 99b66308..d4bc87f9 100644
--- a/src/detached_mounts_propagation.c
+++ b/src/detached_mounts_propagation.c
@@ -96,7 +96,7 @@ static const struct option longopts[] = {
 int main(int argc, char *argv[])
 {
 	int exit_code = EXIT_SUCCESS, index = 0;
-	int dfd, fd_tree, new_argc, ret;
+	int dfd, fd_tree, new_argc, ret, i;
 	char *base_dir;
 	char *const *new_argv;
 	char target[PATH_MAX];
@@ -147,7 +147,7 @@ int main(int argc, char *argv[])
 	 * Having a mount table with 10000 mounts is already quite excessive
 	 * and shoult account even for weird test systems.
 	 */
-	for (size_t i = 0; i < 10000; i++) {
+	for (i = 0; i < 10000; i++) {
 		fd_tree = sys_open_tree(dfd, "detached-move-mount",
 					OPEN_TREE_CLONE |
 					OPEN_TREE_CLOEXEC |
diff --git a/src/idmapped-mounts/mount-idmapped.c b/src/idmapped-mounts/mount-idmapped.c
index 5f5ba5d2..b3e9e27b 100644
--- a/src/idmapped-mounts/mount-idmapped.c
+++ b/src/idmapped-mounts/mount-idmapped.c
@@ -137,7 +137,7 @@ static int add_map_entry(__u32 id_host,
 static int parse_map(char *map)
 {
 	char types[2] = {'u', 'g'};
-	int ret;
+	int ret, i;
 	__u32 id_host, id_ns, range;
 	char which;
 
@@ -151,7 +151,7 @@ static int parse_map(char *map)
 	if (which != 'b' && which != 'u' && which != 'g')
 		return -1;
 
-	for (int i = 0; i < 2; i++) {
+	for (i = 0; i < 2; i++) {
 		idmap_type_t map_type;
 
 		if (which != types[i] && which != 'b')
@@ -230,8 +230,9 @@ static int map_ids_from_idmap(struct list *idmap, pid_t pid)
 	int fill, left;
 	char mapbuf[4096] = {};
 	bool had_entry = false;
+	idmap_type_t map_type, u_or_g;
 
-	for (idmap_type_t map_type = ID_TYPE_UID, u_or_g = 'u';
+	for (map_type = ID_TYPE_UID, u_or_g = 'u';
 	     map_type <= ID_TYPE_GID; map_type++, u_or_g = 'g') {
 		char *pos = mapbuf;
 		int ret;
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2
  2021-04-26  6:23 [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration Yang Xu
@ 2021-04-26  6:23 ` Yang Xu
  2021-04-26 14:32   ` Christian Brauner
  2021-04-28  6:50   ` Anju T Sudhakar
  2021-04-26  6:23 ` [PATCH v2 3/3] src/idmapped-mounts: Remove useless header file Yang Xu
  2021-04-26 14:30 ` [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration Christian Brauner
  2 siblings, 2 replies; 8+ messages in thread
From: Yang Xu @ 2021-04-26  6:23 UTC (permalink / raw)
  To: fstests; +Cc: Yang Xu

We don't add fallback for renameat2, so it build failed on old kernel.
Also, renameat2() man-pages said as below:
"renameat2() has an additional flags argument.  A renameat2() call with
a zero flags argument is equivalent to renameat()."

In this src file, it uses zero flag for all renameat2 call. So we can use
renameat directly.

Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
---
 src/idmapped-mounts/idmapped-mounts.c | 222 +++++++++++++-------------
 1 file changed, 111 insertions(+), 111 deletions(-)

diff --git a/src/idmapped-mounts/idmapped-mounts.c b/src/idmapped-mounts/idmapped-mounts.c
index 870a8fe7..1a02953d 100644
--- a/src/idmapped-mounts/idmapped-mounts.c
+++ b/src/idmapped-mounts/idmapped-mounts.c
@@ -874,8 +874,8 @@ static int fsids_unmapped(void)
 	}
 
 	/* try to rename a file */
-	if (!renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0)) {
-		log_stderr("failure: renameat2");
+	if (!renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME)) {
+		log_stderr("failure: renameat");
 		goto out;
 	}
 	if (errno != EOVERFLOW) {
@@ -884,8 +884,8 @@ static int fsids_unmapped(void)
 	}
 
 	/* try to rename a directory */
-	if (!renameat2(open_tree_fd, DIR1, open_tree_fd, DIR1_RENAME, 0)) {
-		log_stderr("failure: renameat2");
+	if (!renameat(open_tree_fd, DIR1, open_tree_fd, DIR1_RENAME)) {
+		log_stderr("failure: renameat");
 		goto out;
 	}
 	if (errno != EOVERFLOW) {
@@ -1048,11 +1048,11 @@ static int fsids_mapped(void)
 			die("failure: create hardlink");
 
 		/* try to rename a file */
-		if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
+		if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
 			die("failure: rename");
 
 		/* try to rename a directory */
-		if (renameat2(open_tree_fd, DIR1, open_tree_fd, DIR1_RENAME, 0))
+		if (renameat(open_tree_fd, DIR1, open_tree_fd, DIR1_RENAME))
 			die("failure: rename");
 
 		/* remove file */
@@ -1183,14 +1183,14 @@ static int create_in_userns(void)
 			die("failure: check ownership");
 
 		/* try to rename a file */
-		if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
+		if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
 			die("failure: create");
 
 		if (!expected_uid_gid(open_tree_fd, FILE1_RENAME, 0, 0, 0))
 			die("failure: check ownership");
 
 		/* try to rename a file */
-		if (renameat2(open_tree_fd, DIR1, open_tree_fd, DIR1_RENAME, 0))
+		if (renameat(open_tree_fd, DIR1, open_tree_fd, DIR1_RENAME))
 			die("failure: create");
 
 		if (!expected_uid_gid(open_tree_fd, DIR1_RENAME, 0, 0, 0))
@@ -1558,8 +1558,8 @@ static int rename_crossing_mounts(void)
 	 * interested in making sure we're not introducing an accidental way to
 	 * violate that restriction or that suddenly this becomes possible.
 	 */
-	if (!renameat2(open_tree_fd, FILE1, t_dir1_fd, FILE1_RENAME, 0)) {
-		log_stderr("failure: renameat2");
+	if (!renameat(open_tree_fd, FILE1, t_dir1_fd, FILE1_RENAME)) {
+		log_stderr("failure: renameat");
 		goto out;
 	}
 	if (errno != EXDEV) {
@@ -1654,8 +1654,8 @@ static int rename_crossing_idmapped_mounts(void)
 	 * interested in making sure we're not introducing an accidental way to
 	 * violate that restriction or that suddenly this becomes possible.
 	 */
-	if (!renameat2(open_tree_fd1, FILE1, open_tree_fd2, FILE1_RENAME, 0)) {
-		log_stderr("failure: renameat2");
+	if (!renameat(open_tree_fd1, FILE1, open_tree_fd2, FILE1_RENAME)) {
+		log_stderr("failure: renameat");
 		goto out;
 	}
 	if (errno != EXDEV) {
@@ -1726,8 +1726,8 @@ static int rename_from_idmapped_mount(void)
 	}
 
 	/* We're not crossing a mountpoint so this must succeed. */
-	if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0)) {
-		log_stderr("failure: renameat2");
+	if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME)) {
+		log_stderr("failure: renameat");
 		goto out;
 	}
 
@@ -1794,7 +1794,7 @@ static int rename_from_idmapped_mount_in_userns(void)
 			die("failure: check ownership");
 
 		/* We're not crossing a mountpoint so this must succeed. */
-		if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
+		if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
 			die("failure: create");
 
 		if (!expected_uid_gid(open_tree_fd, FILE1_RENAME, 0, 0, 0))
@@ -5157,17 +5157,17 @@ static int sticky_bit_rename(void)
 		if (!switch_ids(1000, 1000))
 			die("failure: switch_ids");
 
-		if (renameat2(dir_fd, FILE1, dir_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE1, dir_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE2, dir_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE2, dir_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE1_RENAME, dir_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE1_RENAME, dir_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE2_RENAME, dir_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE2_RENAME, dir_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
@@ -5200,13 +5200,13 @@ static int sticky_bit_rename(void)
 		if (!switch_ids(1000, 1000))
 			die("failure: switch_ids");
 
-		if (!renameat2(dir_fd, FILE1, dir_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(dir_fd, FILE1, dir_fd, FILE1_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
-		if (!renameat2(dir_fd, FILE2, dir_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(dir_fd, FILE2, dir_fd, FILE2_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
@@ -5239,17 +5239,17 @@ static int sticky_bit_rename(void)
 		if (!switch_ids(1000, 1000))
 			die("failure: switch_ids");
 
-		if (renameat2(dir_fd, FILE1, dir_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE1, dir_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE2, dir_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE2, dir_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE1_RENAME, dir_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE1_RENAME, dir_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE2_RENAME, dir_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE2_RENAME, dir_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
@@ -5286,17 +5286,17 @@ static int sticky_bit_rename(void)
 		if (!switch_ids(1000, 1000))
 			die("failure: switch_ids");
 
-		if (renameat2(dir_fd, FILE1, dir_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE1, dir_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE2, dir_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE2, dir_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE1_RENAME, dir_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE1_RENAME, dir_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE2_RENAME, dir_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE2_RENAME, dir_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
@@ -5410,17 +5410,17 @@ static int sticky_bit_rename_idmapped_mounts(void)
 		if (!switch_ids(1000, 1000))
 			die("failure: switch_ids");
 
-		if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
@@ -5453,13 +5453,13 @@ static int sticky_bit_rename_idmapped_mounts(void)
 		if (!switch_ids(1000, 1000))
 			die("failure: switch_ids");
 
-		if (!renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
-		if (!renameat2(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
@@ -5492,17 +5492,17 @@ static int sticky_bit_rename_idmapped_mounts(void)
 		if (!switch_ids(1000, 1000))
 			die("failure: switch_ids");
 
-		if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
@@ -5538,17 +5538,17 @@ static int sticky_bit_rename_idmapped_mounts(void)
 		if (!switch_ids(1000, 1000))
 			die("failure: switch_ids");
 
-		if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
@@ -5670,17 +5670,17 @@ static int sticky_bit_rename_idmapped_mounts_in_userns(void)
 		if (!switch_userns(attr.userns_fd, 1000, 1000, true))
 			die("failure: switch_userns");
 
-		if (renameat2(dir_fd, FILE1, dir_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE1, dir_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE2, dir_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE2, dir_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE1_RENAME, dir_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE1_RENAME, dir_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(dir_fd, FILE2_RENAME, dir_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(dir_fd, FILE2_RENAME, dir_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
@@ -5718,23 +5718,23 @@ static int sticky_bit_rename_idmapped_mounts_in_userns(void)
 		if (!switch_userns(attr.userns_fd, 1000, 1000, true))
 			die("failure: switch_userns");
 
-		if (!renameat2(dir_fd, FILE1, dir_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(dir_fd, FILE1, dir_fd, FILE1_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
-		if (!renameat2(dir_fd, FILE2, dir_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(dir_fd, FILE2, dir_fd, FILE2_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
-		if (!renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
-		if (!renameat2(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
@@ -5772,27 +5772,27 @@ static int sticky_bit_rename_idmapped_mounts_in_userns(void)
 		if (!switch_userns(attr.userns_fd, 1000, 1000, true))
 			die("failure: switch_userns");
 
-		if (!renameat2(dir_fd, FILE1, dir_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(dir_fd, FILE1, dir_fd, FILE1_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
-		if (!renameat2(dir_fd, FILE2, dir_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(dir_fd, FILE2, dir_fd, FILE2_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
-		if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
@@ -5834,28 +5834,28 @@ static int sticky_bit_rename_idmapped_mounts_in_userns(void)
 			die("failure: switch_userns");
 
 		/* we don't own the directory from the original mount */
-		if (!renameat2(dir_fd, FILE1, dir_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(dir_fd, FILE1, dir_fd, FILE1_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
-		if (!renameat2(dir_fd, FILE2, dir_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (!renameat(dir_fd, FILE2, dir_fd, FILE2_RENAME))
+			die("failure: renameat");
 		if (errno != EPERM)
 			die("failure: errno");
 
 		/* we own the file from the idmapped mount */
-		if (renameat2(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1, open_tree_fd, FILE1_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2, open_tree_fd, FILE2_RENAME))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE1_RENAME, open_tree_fd, FILE1))
+			die("failure: renameat");
 
-		if (renameat2(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2, 0))
-			die("failure: renameat2");
+		if (renameat(open_tree_fd, FILE2_RENAME, open_tree_fd, FILE2))
+			die("failure: renameat");
 
 		exit(EXIT_SUCCESS);
 	}
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 3/3] src/idmapped-mounts: Remove useless header file
  2021-04-26  6:23 [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration Yang Xu
  2021-04-26  6:23 ` [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2 Yang Xu
@ 2021-04-26  6:23 ` Yang Xu
  2021-04-26 14:32   ` Christian Brauner
  2021-04-26 14:30 ` [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration Christian Brauner
  2 siblings, 1 reply; 8+ messages in thread
From: Yang Xu @ 2021-04-26  6:23 UTC (permalink / raw)
  To: fstests; +Cc: Yang Xu

When compile xfstest on old kernel, mount-idmapped.c will fail because of
missing linux/bpf.h. But this src file doesn't use bpf realted functions or macros.

So remove these useless header files in idmapped-mounts.c and mount-idmapped.c.

Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
---
 src/idmapped-mounts/idmapped-mounts.c | 2 --
 src/idmapped-mounts/mount-idmapped.c  | 4 ----
 2 files changed, 6 deletions(-)

diff --git a/src/idmapped-mounts/idmapped-mounts.c b/src/idmapped-mounts/idmapped-mounts.c
index 1a02953d..30f8f6e0 100644
--- a/src/idmapped-mounts/idmapped-mounts.c
+++ b/src/idmapped-mounts/idmapped-mounts.c
@@ -16,11 +16,9 @@
 #include <pthread.h>
 #include <sched.h>
 #include <stdbool.h>
-#include <sys/acl.h>
 #include <sys/fsuid.h>
 #include <sys/stat.h>
 #include <sys/types.h>
-#include <sys/sysmacros.h>
 #include <sys/xattr.h>
 #include <unistd.h>
 
diff --git a/src/idmapped-mounts/mount-idmapped.c b/src/idmapped-mounts/mount-idmapped.c
index b3e9e27b..219104e7 100644
--- a/src/idmapped-mounts/mount-idmapped.c
+++ b/src/idmapped-mounts/mount-idmapped.c
@@ -9,11 +9,8 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <getopt.h>
-#include <libgen.h>
 #include <limits.h>
-#include <linux/bpf.h>
 #include <linux/sched.h>
-#include <linux/seccomp.h>
 #include <sched.h>
 #include <signal.h>
 #include <stdbool.h>
@@ -21,7 +18,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/mman.h>
 #include <sys/stat.h>
 #include <sys/syscall.h>
 #include <sys/types.h>
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration
  2021-04-26  6:23 [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration Yang Xu
  2021-04-26  6:23 ` [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2 Yang Xu
  2021-04-26  6:23 ` [PATCH v2 3/3] src/idmapped-mounts: Remove useless header file Yang Xu
@ 2021-04-26 14:30 ` Christian Brauner
  2 siblings, 0 replies; 8+ messages in thread
From: Christian Brauner @ 2021-04-26 14:30 UTC (permalink / raw)
  To: Yang Xu; +Cc: fstests

On Mon, Apr 26, 2021 at 02:23:05PM +0800, Yang Xu wrote:
> When compile them on old gcc, get the following error
> mount-idmapped.c: In function 'parse_map':
> mount-idmapped.c:154:2: error: 'for' loop initial declarations are only allowed in C99 mode
>   for (int i = 0; i < 2; i++) {
> 
> Fix them by declaring them at the beginning instead of in loop.
> 
> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
> ---

2021 and we still can't use for-loop initial declarations, _sigh_.
Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2
  2021-04-26  6:23 ` [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2 Yang Xu
@ 2021-04-26 14:32   ` Christian Brauner
  2021-04-27  1:34     ` xuyang2018.jy
  2021-04-28  6:50   ` Anju T Sudhakar
  1 sibling, 1 reply; 8+ messages in thread
From: Christian Brauner @ 2021-04-26 14:32 UTC (permalink / raw)
  To: Yang Xu; +Cc: fstests

On Mon, Apr 26, 2021 at 02:23:06PM +0800, Yang Xu wrote:
> We don't add fallback for renameat2, so it build failed on old kernel.
> Also, renameat2() man-pages said as below:
> "renameat2() has an additional flags argument.  A renameat2() call with
> a zero flags argument is equivalent to renameat()."
> 
> In this src file, it uses zero flag for all renameat2 call. So we can use
> renameat directly.
> 
> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
> ---

Looks ok. You made sure that this passes after this change, right?
Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 3/3] src/idmapped-mounts: Remove useless header file
  2021-04-26  6:23 ` [PATCH v2 3/3] src/idmapped-mounts: Remove useless header file Yang Xu
@ 2021-04-26 14:32   ` Christian Brauner
  0 siblings, 0 replies; 8+ messages in thread
From: Christian Brauner @ 2021-04-26 14:32 UTC (permalink / raw)
  To: Yang Xu; +Cc: fstests

On Mon, Apr 26, 2021 at 02:23:07PM +0800, Yang Xu wrote:
> When compile xfstest on old kernel, mount-idmapped.c will fail because of
> missing linux/bpf.h. But this src file doesn't use bpf realted functions or macros.
> 
> So remove these useless header files in idmapped-mounts.c and mount-idmapped.c.
> 
> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
> ---

Seems fine,
Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2
  2021-04-26 14:32   ` Christian Brauner
@ 2021-04-27  1:34     ` xuyang2018.jy
  0 siblings, 0 replies; 8+ messages in thread
From: xuyang2018.jy @ 2021-04-27  1:34 UTC (permalink / raw)
  To: Christian Brauner; +Cc: fstests

on 2021/4/26 22:32, Christian Brauner wrote:
> On Mon, Apr 26, 2021 at 02:23:06PM +0800, Yang Xu wrote:
>> We don't add fallback for renameat2, so it build failed on old kernel.
>> Also, renameat2() man-pages said as below:
>> "renameat2() has an additional flags argument.  A renameat2() call with
>> a zero flags argument is equivalent to renameat()."
>>
>> In this src file, it uses zero flag for all renameat2 call. So we can use
>> renameat directly.
>>
>> Signed-off-by: Yang Xu<xuyang2018.jy@fujitsu.com>
>> ---
>
> Looks ok. You made sure that this passes after this change, right?
Yes. It passes after this change.
> Reviewed-by: Christian Brauner<christian.brauner@ubuntu.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2
  2021-04-26  6:23 ` [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2 Yang Xu
  2021-04-26 14:32   ` Christian Brauner
@ 2021-04-28  6:50   ` Anju T Sudhakar
  1 sibling, 0 replies; 8+ messages in thread
From: Anju T Sudhakar @ 2021-04-28  6:50 UTC (permalink / raw)
  To: Yang Xu, fstests


On 4/26/21 11:53 AM, Yang Xu wrote:
> We don't add fallback for renameat2, so it build failed on old kernel.
> Also, renameat2() man-pages said as below:
> "renameat2() has an additional flags argument.  A renameat2() call with
> a zero flags argument is equivalent to renameat()."
>
> In this src file, it uses zero flag for all renameat2 call. So we can use
> renameat directly.
>
> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
> ---


Looks good. This fixes the build error.

Reviewed-by:Anju T Sudhakar<anju@linux.vnet.ibm.com>


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-04-28  6:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-26  6:23 [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration Yang Xu
2021-04-26  6:23 ` [PATCH v2 2/3] idmapped-mounts.c: Use renameat instead of renameat2 Yang Xu
2021-04-26 14:32   ` Christian Brauner
2021-04-27  1:34     ` xuyang2018.jy
2021-04-28  6:50   ` Anju T Sudhakar
2021-04-26  6:23 ` [PATCH v2 3/3] src/idmapped-mounts: Remove useless header file Yang Xu
2021-04-26 14:32   ` Christian Brauner
2021-04-26 14:30 ` [PATCH v2 1/3] src/*: Fix an error for the loop initialization declaration Christian Brauner

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).