[LTP] [PATCH v3 1/3] lib: add helper SAFE_FANOTIFY_INIT

Xiong Zhou xzhou@redhat.com
Mon Aug 14 16:01:49 CEST 2017


Signed-off-by: Xiong Zhou <xzhou@redhat.com>
---
 include/tst_safe_macros.h |  5 +++++
 lib/tst_safe_macros.c     | 23 +++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/include/tst_safe_macros.h b/include/tst_safe_macros.h
index 8245b68..f23f765 100644
--- a/include/tst_safe_macros.h
+++ b/include/tst_safe_macros.h
@@ -438,4 +438,9 @@ int safe_mknod(const char *file, const int lineno, const char *pathname,
 #define SAFE_MKNOD(pathname, mode, dev) \
 	safe_mknod(__FILE__, __LINE__, (pathname), (mode), (dev))
 
+int safe_fanotify_init(const char *file, const int lineno,
+	unsigned int flags, unsigned int event_f_flags);
+#define SAFE_FANOTIFY_INIT(fan, mode)  \
+	safe_fanotify_init(__FILE__, __LINE__, (fan), (mode))
+
 #endif /* SAFE_MACROS_H__ */
diff --git a/lib/tst_safe_macros.c b/lib/tst_safe_macros.c
index e7f5095..47f87a7 100644
--- a/lib/tst_safe_macros.c
+++ b/lib/tst_safe_macros.c
@@ -17,6 +17,7 @@
 
 #define _GNU_SOURCE
 #include <unistd.h>
+#include <errno.h>
 #define TST_NO_DEFAULT_MAIN
 #include "tst_test.h"
 #include "tst_safe_macros.h"
@@ -47,3 +48,25 @@ pid_t safe_getpgid(const char *file, const int lineno, pid_t pid)
 
 	return pgid;
 }
+
+int safe_fanotify_init(const char *file, const int lineno,
+	unsigned int flags, unsigned int event_f_flags)
+{
+	int rval;
+
+	rval = fanotify_init(flags, event_f_flags);
+
+	if (rval == -1) {
+
+		if (errno == ENOSYS) {
+			tst_brk(TCONF,
+				"fanotify is not configured in this kernel.");
+		} else {
+			tst_brk(TBROK | TERRNO,
+				"%s:%d: fanotify_init() failed",
+				file, lineno);
+		}
+	}
+
+	return rval;
+}
-- 
1.8.3.1



More information about the ltp mailing list