From 84cb63e9eea3b3415c7079a1189d5e13f96b1df3 Mon Sep 17 00:00:00 2001 From: Ramon Nou Date: Tue, 18 Mar 2025 13:14:21 +0100 Subject: [PATCH 1/4] Add -EINVAL to readlink --- src/client/hooks.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/client/hooks.cpp b/src/client/hooks.cpp index 82bc545a2..67e976e0b 100644 --- a/src/client/hooks.cpp +++ b/src/client/hooks.cpp @@ -800,9 +800,8 @@ hook_readlinkat(int dirfd, const char* cpath, char* buf, int bufsiz) { case gkfs::preload::RelativizeStatus::fd_not_a_dir: return -ENOTDIR; - case gkfs::preload::RelativizeStatus::internal: - LOG(WARNING, "{}() not supported", __func__); - return -ENOTSUP; + case gkfs::preload::RelativizeStatus::internal: + return -EINVAL; default: LOG(ERROR, "{}() relativize status unknown: {}", __func__); -- GitLab From 373d882c919dc27ed953a0a94f3c340d469f3297 Mon Sep 17 00:00:00 2001 From: Ramon Nou Date: Tue, 18 Mar 2025 13:16:47 +0100 Subject: [PATCH 2/4] format --- src/client/hooks.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/hooks.cpp b/src/client/hooks.cpp index 67e976e0b..249776088 100644 --- a/src/client/hooks.cpp +++ b/src/client/hooks.cpp @@ -800,7 +800,7 @@ hook_readlinkat(int dirfd, const char* cpath, char* buf, int bufsiz) { case gkfs::preload::RelativizeStatus::fd_not_a_dir: return -ENOTDIR; - case gkfs::preload::RelativizeStatus::internal: + case gkfs::preload::RelativizeStatus::internal: return -EINVAL; default: -- GitLab From 561dd80b98a7c1eaf716458c4920bf9607bd596d Mon Sep 17 00:00:00 2001 From: Ramon Nou Date: Tue, 18 Mar 2025 13:18:56 +0100 Subject: [PATCH 3/4] Changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 208dfc2f3..9d8f49b8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,8 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Changed - Tests check ret for -1 instead of 10000 fd ([!320](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/320)) - Allow some more script tests to run as pthread_at_fork solved some issues. - + - Return EINVAL is better than ENOTSUP on internal readlink ([!223](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/223)) + ### Fixed -- GitLab From 0e051bcc674dc9f09d18101bc80aee9ed007dc76 Mon Sep 17 00:00:00 2001 From: Ramon Nou Date: Tue, 18 Mar 2025 13:27:34 +0100 Subject: [PATCH 4/4] Test syscall --- tests/integration/harness/gkfs.io/syscall_coverage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/harness/gkfs.io/syscall_coverage.cpp b/tests/integration/harness/gkfs.io/syscall_coverage.cpp index b1480a6d8..68baaf483 100644 --- a/tests/integration/harness/gkfs.io/syscall_coverage.cpp +++ b/tests/integration/harness/gkfs.io/syscall_coverage.cpp @@ -314,7 +314,7 @@ syscall_coverage_exec(const syscall_coverage_options& opts) { // readlinkat rv = ::readlinkat(AT_FDCWD, opts.pathname.c_str(), buf, sizeof(buf)); - if(errno != ENOTSUP) { + if(errno != EINVAL) { output("readlinkat", rv, opts); return; } -- GitLab