.../selftests/filesystems/mount-notify/mount-notify_test.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
When running `make kselftest`, the following compilation warning was encountered:
mount-notify_test.c: In function ‘fanotify_rmdir’:
mount-notify_test.c:490:17: warning: ignoring return value of ‘chdir’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
490 | chdir("/");
| ^~~~~~~~~~
This patch addresses the warning by
explicitly suppressing the unused result of the `chdir` function.
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
---
.../selftests/filesystems/mount-notify/mount-notify_test.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c b/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c
index 63ce708d93ed0..34afe27b7978f 100644
--- a/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c
+++ b/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c
@@ -465,7 +465,9 @@ TEST_F(fanotify, rmdir)
ASSERT_GE(ret, 0);
if (ret == 0) {
- chdir("/");
+ // Suppress -Wunused-result
+ // Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425#c34
+ (void) !chdir("/");
unshare(CLONE_NEWNS);
mount("", "/", NULL, MS_REC|MS_PRIVATE, NULL);
umount2("/a", MNT_DETACH);
--
2.43.0
On 6/9/25 20:07, Chen Linxuan wrote: > When running `make kselftest`, the following compilation warning was encountered: > > mount-notify_test.c: In function ‘fanotify_rmdir’: > mount-notify_test.c:490:17: warning: ignoring return value of ‘chdir’ declared with attribute ‘warn_unused_result’ [-Wunused-result] > 490 | chdir("/"); > | ^~~~~~~~~~ > > This patch addresses the warning by > explicitly suppressing the unused result of the `chdir` function. > > Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com> > --- > .../selftests/filesystems/mount-notify/mount-notify_test.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c b/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c > index 63ce708d93ed0..34afe27b7978f 100644 > --- a/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c > +++ b/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c > @@ -465,7 +465,9 @@ TEST_F(fanotify, rmdir) > ASSERT_GE(ret, 0); > > if (ret == 0) { > - chdir("/"); > + // Suppress -Wunused-result > + // Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425#c34 > + (void) !chdir("/"); Why not fix the problem the right way by checking the return value. Suppressing the error isn't useful. > unshare(CLONE_NEWNS); > mount("", "/", NULL, MS_REC|MS_PRIVATE, NULL); > umount2("/a", MNT_DETACH); thanks, -- Shuah
On Thu, Jun 19, 2025 at 5:23 AM Shuah Khan <skhan@linuxfoundation.org> wrote: > > On 6/9/25 20:07, Chen Linxuan wrote: > > When running `make kselftest`, the following compilation warning was encountered: > > > > mount-notify_test.c: In function ‘fanotify_rmdir’: > > mount-notify_test.c:490:17: warning: ignoring return value of ‘chdir’ declared with attribute ‘warn_unused_result’ [-Wunused-result] > > 490 | chdir("/"); > > | ^~~~~~~~~~ > > > > This patch addresses the warning by > > explicitly suppressing the unused result of the `chdir` function. > > > > Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com> > > --- > > .../selftests/filesystems/mount-notify/mount-notify_test.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c b/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c > > index 63ce708d93ed0..34afe27b7978f 100644 > > --- a/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c > > +++ b/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c > > @@ -465,7 +465,9 @@ TEST_F(fanotify, rmdir) > > ASSERT_GE(ret, 0); > > > > if (ret == 0) { > > - chdir("/"); > > + // Suppress -Wunused-result > > + // Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425#c34 > > + (void) !chdir("/"); > > Why not fix the problem the right way by checking the return value. > Suppressing the error isn't useful. The code is already handling cleanup in error cases, and I don't think checking the result of chdir would be useful here. > > > > unshare(CLONE_NEWNS); > > mount("", "/", NULL, MS_REC|MS_PRIVATE, NULL); > > umount2("/a", MNT_DETACH); > > thanks, > -- Shuah > >
On 6/19/25 01:46, Chen Linxuan wrote: > On Thu, Jun 19, 2025 at 5:23 AM Shuah Khan <skhan@linuxfoundation.org> wrote: >> >> On 6/9/25 20:07, Chen Linxuan wrote: >>> When running `make kselftest`, the following compilation warning was encountered: >>> >>> mount-notify_test.c: In function ‘fanotify_rmdir’: >>> mount-notify_test.c:490:17: warning: ignoring return value of ‘chdir’ declared with attribute ‘warn_unused_result’ [-Wunused-result] >>> 490 | chdir("/"); >>> | ^~~~~~~~~~ >>> >>> This patch addresses the warning by >>> explicitly suppressing the unused result of the `chdir` function. >>> >>> Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com> >>> --- >>> .../selftests/filesystems/mount-notify/mount-notify_test.c | 4 +++- >>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c b/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c >>> index 63ce708d93ed0..34afe27b7978f 100644 >>> --- a/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c >>> +++ b/tools/testing/selftests/filesystems/mount-notify/mount-notify_test.c >>> @@ -465,7 +465,9 @@ TEST_F(fanotify, rmdir) >>> ASSERT_GE(ret, 0); >>> >>> if (ret == 0) { >>> - chdir("/"); >>> + // Suppress -Wunused-result >>> + // Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425#c34 >>> + (void) !chdir("/"); >>>> Why not fix the problem the right way by checking the return value. >> Suppressing the error isn't useful. > > The code is already handling cleanup in error cases, > and I don't think checking the result of chdir would be useful here. We check for chdir() in several tools in the kernel. Add a check for it instead of suppressing the [-Wunused-result] - suppressing doesn't do any good. thanks, -- Shuah
On 6/19/25 10:00 AM, Shuah Khan wrote: > On 6/19/25 01:46, Chen Linxuan wrote: >> On Thu, Jun 19, 2025 at 5:23 AM Shuah Khan <skhan@linuxfoundation.org> >> wrote: >>> On 6/9/25 20:07, Chen Linxuan wrote: ... >>>> diff --git a/tools/testing/selftests/filesystems/mount-notify/mount- >>>> notify_test.c b/tools/testing/selftests/filesystems/mount-notify/ >>>> mount-notify_test.c >>>> index 63ce708d93ed0..34afe27b7978f 100644 >>>> --- a/tools/testing/selftests/filesystems/mount-notify/mount- >>>> notify_test.c >>>> +++ b/tools/testing/selftests/filesystems/mount-notify/mount- >>>> notify_test.c >>>> @@ -465,7 +465,9 @@ TEST_F(fanotify, rmdir) >>>> ASSERT_GE(ret, 0); >>>> >>>> if (ret == 0) { >>>> - chdir("/"); >>>> + // Suppress -Wunused-result >>>> + // Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi? >>>> id=66425#c34 >>>> + (void) !chdir("/"); This is quite ugly. :) >>>>> Why not fix the problem the right way by checking the return value. >>> Suppressing the error isn't useful. >> >> The code is already handling cleanup in error cases, >> and I don't think checking the result of chdir would be useful here. > Why not just fail with the appropriate test result, if chdir() fails here, instead of making a bit of a mess with odd void casts to a negated return value, and a reference to a compiler bug report? Really, Shuah is putting you on the right path here. > We check for chdir() in several tools in the kernel. Add a check for > it instead of suppressing the [-Wunused-result] - suppressing doesn't > do any good. > > thanks, > -- Shuah > > thanks, -- John Hubbard
On 6/19/25 13:00, John Hubbard wrote: > On 6/19/25 10:00 AM, Shuah Khan wrote: >> On 6/19/25 01:46, Chen Linxuan wrote: >>> On Thu, Jun 19, 2025 at 5:23 AM Shuah Khan <skhan@linuxfoundation.org> wrote: >>>> On 6/9/25 20:07, Chen Linxuan wrote: > ... >>>>> diff --git a/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c b/tools/testing/selftests/filesystems/mount-notify/ mount-notify_test.c >>>>> index 63ce708d93ed0..34afe27b7978f 100644 >>>>> --- a/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c >>>>> +++ b/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c >>>>> @@ -465,7 +465,9 @@ TEST_F(fanotify, rmdir) >>>>> ASSERT_GE(ret, 0); >>>>> >>>>> if (ret == 0) { >>>>> - chdir("/"); >>>>> + // Suppress -Wunused-result >>>>> + // Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi? id=66425#c34 >>>>> + (void) !chdir("/"); > > This is quite ugly. :) > >>>>>> Why not fix the problem the right way by checking the return value. >>>> Suppressing the error isn't useful. >>> >>> The code is already handling cleanup in error cases, >>> and I don't think checking the result of chdir would be useful here. >> > > Why not just fail with the appropriate test result, if chdir() fails > here, instead of making a bit of a mess with odd void casts to a > negated return value, and a reference to a compiler bug report? > > Really, Shuah is putting you on the right path here. Ha. I didn't ask to suppress the error with the cast. I asked to check the return and fail. > >> We check for chdir() in several tools in the kernel. Add a check for >> it instead of suppressing the [-Wunused-result] - suppressing doesn't >> do any good. This is what I said. thanks, -- Shuah
On Fri, Jun 20, 2025 at 5:41 AM Shuah Khan <skhan@linuxfoundation.org> wrote: > > On 6/19/25 13:00, John Hubbard wrote: > > On 6/19/25 10:00 AM, Shuah Khan wrote: > >> On 6/19/25 01:46, Chen Linxuan wrote: > >>> On Thu, Jun 19, 2025 at 5:23 AM Shuah Khan <skhan@linuxfoundation.org> wrote: > >>>> On 6/9/25 20:07, Chen Linxuan wrote: > > ... > >>>>> diff --git a/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c b/tools/testing/selftests/filesystems/mount-notify/ mount-notify_test.c > >>>>> index 63ce708d93ed0..34afe27b7978f 100644 > >>>>> --- a/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c > >>>>> +++ b/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c > >>>>> @@ -465,7 +465,9 @@ TEST_F(fanotify, rmdir) > >>>>> ASSERT_GE(ret, 0); > >>>>> > >>>>> if (ret == 0) { > >>>>> - chdir("/"); > >>>>> + // Suppress -Wunused-result > >>>>> + // Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi? id=66425#c34 > >>>>> + (void) !chdir("/"); > > > > This is quite ugly. :) I agree with you. :) > > > >>>>>> Why not fix the problem the right way by checking the return value. > >>>> Suppressing the error isn't useful. > >>> > >>> The code is already handling cleanup in error cases, > >>> and I don't think checking the result of chdir would be useful here. I think I was mistaken earlier. Here we are in the child process after a fork, not handling an error case. I think simply calling exit(-1) here when chdir failed should be enough to make the test fail in the parent process. Maybe we should do the same for other similar calls as well. I will send a v2 soon. > >> > > > > Why not just fail with the appropriate test result, if chdir() fails > > here, instead of making a bit of a mess with odd void casts to a > > negated return value, and a reference to a compiler bug report? > > > > Really, Shuah is putting you on the right path here. > > Ha. I didn't ask to suppress the error with the cast. I asked > to check the return and fail. > > > > >> We check for chdir() in several tools in the kernel. Add a check for > >> it instead of suppressing the [-Wunused-result] - suppressing doesn't > >> do any good. > > This is what I said. > > thanks, > -- Shuah > >
On 6/19/25 15:40, Shuah Khan wrote: > On 6/19/25 13:00, John Hubbard wrote: >> On 6/19/25 10:00 AM, Shuah Khan wrote: >>> On 6/19/25 01:46, Chen Linxuan wrote: >>>> On Thu, Jun 19, 2025 at 5:23 AM Shuah Khan <skhan@linuxfoundation.org> wrote: >>>>> On 6/9/25 20:07, Chen Linxuan wrote: >> ... >>>>>> diff --git a/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c b/tools/testing/selftests/filesystems/mount-notify/ mount-notify_test.c >>>>>> index 63ce708d93ed0..34afe27b7978f 100644 >>>>>> --- a/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c >>>>>> +++ b/tools/testing/selftests/filesystems/mount-notify/mount- notify_test.c >>>>>> @@ -465,7 +465,9 @@ TEST_F(fanotify, rmdir) >>>>>> ASSERT_GE(ret, 0); >>>>>> >>>>>> if (ret == 0) { >>>>>> - chdir("/"); >>>>>> + // Suppress -Wunused-result >>>>>> + // Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi? id=66425#c34 >>>>>> + (void) !chdir("/"); >> >> This is quite ugly. :) >> >>>>>>> Why not fix the problem the right way by checking the return value. >>>>> Suppressing the error isn't useful. >>>> >>>> The code is already handling cleanup in error cases, >>>> and I don't think checking the result of chdir would be useful here. >>> >> >> Why not just fail with the appropriate test result, if chdir() fails >> here, instead of making a bit of a mess with odd void casts to a >> negated return value, and a reference to a compiler bug report? >> >> Really, Shuah is putting you on the right path here. > > Ha. I didn't ask to suppress the error with the cast. I asked > to check the return and fail. > >> Sorry John. I didn't read it correctly the first time. I probably go get more coffee. :) thanks, -- Shuah
© 2016 - 2025 Red Hat, Inc.