[xfstests PATCH] renameat2 syscall: turn EEXIST into ENOTEMPTY

Miklos Szeredi
2014-04-14T10:49:58Z

From: Miklos Szeredi <mszeredi@suse.cz>

XFS is returning EEXIST rather than ENOTEMPTY for several of
these rename tests. The rename man page says this about the errors:

ENOTEMPTY or EEXIST
newpath is a nonempty directory, that is, contains
entries other than "." and "..".

Which implies that both errors are valid and so the test should pass
in either case.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
---
src/renameat2.c | 9 +++++++++
1 file changed, 9 insertions(+)

--- a/src/renameat2.c
+++ b/src/renameat2.c
@@ -88,6 +88,15 @@ int main(int argc, char *argv[])
else
return 0;
}
+ /*
+ * Turn EEXIST into ENOTEMPTY. E.g. XFS uses EEXIST, and that
+ * is also accepted by the standards.
+ *
+ * This applies only to plain rename (flags == 0).
+ */
+ if (!flags && errno == EEXIST)
+ errno = ENOTEMPTY;
+
perror("");
return 1;
}

_______________________________________________
xfs mailing list
xfs@oss.sgi.com