Message ID | 1705514501-2098-1-git-send-email-dai.ngo@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/1] nfstest_posix: add check for EINVAL when open(2) called with O_DIRECTORY|O_CREAT | expand |
On Wed, Jan 17, 2024 at 10:01:41AM -0800, Dai Ngo wrote: > The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors: > > FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed) > FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed) > > These tests failed due to the commit 43b450632676 that fixes problems > with VFS API: > > 43b450632676: open: return EINVAL for O_DIRECTORY | O_CREAT > > This patch fixes the problem by adding a check for EINVAL when the > open(2) was called with O_DIRECTORY | O_CREAT. > > Signed-off-by: Dai Ngo <dai.ngo@oracle.com> > --- Thank you!
Hi Jorge, Have you had a chance to take a look at this patch? Thanks, -Dai On 1/17/24 10:01 AM, Dai Ngo wrote: > The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors: > > FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed) > FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed) > > These tests failed due to the commit 43b450632676 that fixes problems > with VFS API: > > 43b450632676: open: return EINVAL for O_DIRECTORY | O_CREAT > > This patch fixes the problem by adding a check for EINVAL when the > open(2) was called with O_DIRECTORY | O_CREAT. > > Signed-off-by: Dai Ngo <dai.ngo@oracle.com> > --- > test/nfstest_posix | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/test/nfstest_posix b/test/nfstest_posix > index 57db5d69b072..6d5fd0dfffee 100755 > --- a/test/nfstest_posix > +++ b/test/nfstest_posix > @@ -1232,7 +1232,12 @@ class PosixTest(TestUtil): > fstat = posix.fstat(fd) > > if ftype in [EXISTENT, SYMLINK]: > - if posix.O_EXCL in flags and posix.O_CREAT in flags: > + if posix.O_CREAT in flags and posix.O_DIRECTORY in flags: > + # O_CREAT and O_DIRECTORY are set > + (expr, fmsg) = self._oserror(openerr, errno.EINVAL) > + msg = "open - opening %s should return EINVAL error when O_CREAT|O_DIRECTORY is used" % fmap[ftype] > + self.test(expr, msg, subtest=flag_str, failmsg=fmsg) > + elif posix.O_EXCL in flags and posix.O_CREAT in flags: > # O_EXCL and O_CREAT are set > (expr, fmsg) = self._oserror(openerr, errno.EEXIST) > msg = "open - opening %s should return an error when O_EXCL|O_CREAT is used" % fmap[ftype]
Hello Dai, Looks good, I have pushed it upstream. Thanks, --Jorge
Thank you Jorge! -Dai On 2/22/24 8:13 AM, Mora, Jorge wrote: > Hello Dai, > > Looks good, I have pushed it upstream. > > Thanks, > > --Jorge > > ________________________________________ > From: dai.ngo@oracle.com <dai.ngo@oracle.com> > Sent: Tuesday, February 20, 2024 2:25 PM > To: Mora, Jorge > Cc: linux-nfs@vger.kernel.org; brauner@kernel.org > Subject: Re: [PATCH 1/1] nfstest_posix: add check for EINVAL when open(2) called with O_DIRECTORY|O_CREAT > > EXTERNAL EMAIL - USE CAUTION when clicking links or attachments > > > > > Hi Jorge, > > Have you had a chance to take a look at this patch? > > Thanks, > -Dai > > On 1/17/24 10:01 AM, Dai Ngo wrote: >> The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors: >> >> FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed) >> FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed) >> >> These tests failed due to the commit 43b450632676 that fixes problems >> with VFS API: >> >> 43b450632676: open: return EINVAL for O_DIRECTORY | O_CREAT >> >> This patch fixes the problem by adding a check for EINVAL when the >> open(2) was called with O_DIRECTORY | O_CREAT. >> >> Signed-off-by: Dai Ngo <dai.ngo@oracle.com> >> --- >> test/nfstest_posix | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/test/nfstest_posix b/test/nfstest_posix >> index 57db5d69b072..6d5fd0dfffee 100755 >> --- a/test/nfstest_posix >> +++ b/test/nfstest_posix >> @@ -1232,7 +1232,12 @@ class PosixTest(TestUtil): >> fstat = posix.fstat(fd) >> >> if ftype in [EXISTENT, SYMLINK]: >> - if posix.O_EXCL in flags and posix.O_CREAT in flags: >> + if posix.O_CREAT in flags and posix.O_DIRECTORY in flags: >> + # O_CREAT and O_DIRECTORY are set >> + (expr, fmsg) = self._oserror(openerr, errno.EINVAL) >> + msg = "open - opening %s should return EINVAL error when O_CREAT|O_DIRECTORY is used" % fmap[ftype] >> + self.test(expr, msg, subtest=flag_str, failmsg=fmsg) >> + elif posix.O_EXCL in flags and posix.O_CREAT in flags: >> # O_EXCL and O_CREAT are set >> (expr, fmsg) = self._oserror(openerr, errno.EEXIST) >> msg = "open - opening %s should return an error when O_EXCL|O_CREAT is used" % fmap[ftype]
diff --git a/test/nfstest_posix b/test/nfstest_posix index 57db5d69b072..6d5fd0dfffee 100755 --- a/test/nfstest_posix +++ b/test/nfstest_posix @@ -1232,7 +1232,12 @@ class PosixTest(TestUtil): fstat = posix.fstat(fd) if ftype in [EXISTENT, SYMLINK]: - if posix.O_EXCL in flags and posix.O_CREAT in flags: + if posix.O_CREAT in flags and posix.O_DIRECTORY in flags: + # O_CREAT and O_DIRECTORY are set + (expr, fmsg) = self._oserror(openerr, errno.EINVAL) + msg = "open - opening %s should return EINVAL error when O_CREAT|O_DIRECTORY is used" % fmap[ftype] + self.test(expr, msg, subtest=flag_str, failmsg=fmsg) + elif posix.O_EXCL in flags and posix.O_CREAT in flags: # O_EXCL and O_CREAT are set (expr, fmsg) = self._oserror(openerr, errno.EEXIST) msg = "open - opening %s should return an error when O_EXCL|O_CREAT is used" % fmap[ftype]
The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors: FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed) FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed) These tests failed due to the commit 43b450632676 that fixes problems with VFS API: 43b450632676: open: return EINVAL for O_DIRECTORY | O_CREAT This patch fixes the problem by adding a check for EINVAL when the open(2) was called with O_DIRECTORY | O_CREAT. Signed-off-by: Dai Ngo <dai.ngo@oracle.com> --- test/nfstest_posix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)