[xfstests PATCH] renameat2 syscall: turn EEXIST into ENOTEMPTY
Miklos Szeredi
miklos at szeredi.hu
Mon Apr 14 05:49:53 CDT 2014
From: Miklos Szeredi <mszeredi at 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 at 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;
}
More information about the xfs
mailing list