summaryrefslogtreecommitdiffstats
path: root/debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch')
-rw-r--r--debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch b/debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch
new file mode 100644
index 0000000..ff17dc2
--- /dev/null
+++ b/debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch
@@ -0,0 +1,49 @@
+From: Masatake YAMATO <yamato@redhat.com>
+Date: Sun, 14 Apr 2024 01:40:14 +0900
+Subject: lsns: tolerate lsns_ioctl(fd,
+ NS_GET_{PARENT,USERNS}) failing with ENOSYS
+
+With the original code, "lsns/filedesc" test case failed on
+"build (qemu-user, s390x)" and "build (qemu-user, riscv64)".
+
+On the platforms, lsns_ioctl(fd, NS_GET_{PARENT,USERNS}) failed
+with ENOSYS. The error stoped the iteration for gathering
+information from /proc/[0-9]+. As a result, lsns printed
+nothing. We don't expect this behavior.
+
+Signed-off-by: Masatake YAMATO <yamato@redhat.com>
+(cherry picked from commit f2a8b20d9c63f771d1fddd639ea1ec3fe034dc6d)
+---
+ sys-utils/lsns.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/sys-utils/lsns.c b/sys-utils/lsns.c
+index 1f3574f..4ea01d2 100644
+--- a/sys-utils/lsns.c
++++ b/sys-utils/lsns.c
+@@ -308,7 +308,11 @@ static int get_ns_ino(int dir, const char *nsname, ino_t *ino, ino_t *pino, ino_
+ return -errno;
+ if (strcmp(nsname, "pid") == 0 || strcmp(nsname, "user") == 0) {
+ if ((pfd = lsns_ioctl(fd, NS_GET_PARENT)) < 0) {
+- if (errno == EPERM)
++ if (errno == EPERM
++ /* On the test platforms, "build (qemu-user, s390x)" and
++ * "build (qemu-user, riscv64)", the ioctl reported ENOSYS.
++ */
++ || errno == ENOSYS)
+ goto user;
+ close(fd);
+ return -errno;
+@@ -323,7 +327,11 @@ static int get_ns_ino(int dir, const char *nsname, ino_t *ino, ino_t *pino, ino_
+ }
+ user:
+ if ((ofd = lsns_ioctl(fd, NS_GET_USERNS)) < 0) {
+- if (errno == EPERM)
++ if (errno == EPERM
++ /* On the test platforms, "build (qemu-user, s390x)" and
++ * "build (qemu-user, riscv64)", the ioctl reported ENOSYS.
++ */
++ || errno == ENOSYS)
+ goto out;
+ close(fd);
+ return -errno;