From: Julian Sikorski <belegdol@gmail.com>
To: Steve French <smfrench@gmail.com>, Jeremy Allison <jra@samba.org>
Cc: CIFS <linux-cifs@vger.kernel.org>
Subject: Re: Permission denied when chainbuilding packages with mock
Date: Wed, 10 Nov 2021 12:23:23 +0100 [thread overview]
Message-ID: <c9af96be-bb75-9487-4f9c-1a53b41e9210@gmail.com> (raw)
In-Reply-To: <CAH2r5mtNxiw8gOTPJe0GopBnkkMspHvsMD+0_K2+kc2VbrgdBw@mail.gmail.com>
W dniu 10.11.2021 o 08:56, Steve French pisze:
> Fix for the kernel client attached
>
>
> On Tue, Nov 9, 2021 at 6:54 PM Jeremy Allison <jra@samba.org> wrote:
>>
>> On Tue, Nov 09, 2021 at 10:26:59AM +0100, Julian Sikorski wrote:
>>> Am 09.11.21 um 09:10 schrieb Steve French:
>>>> Yes - here is a trivial reproducer (excuse the ugly sample cut-n-paste)
>>>>
>>>> #include <stdio.h>
>>>> #include <stdlib.h>
>>>> #include <unistd.h>
>>>> #include <string.h>
>>>> #include <fcntl.h>
>>>> #include <sys/types.h>
>>>> #include <sys/stat.h>
>>>>
>>>> int main(int argc, char *argv[]) {
>>>> char *str = "Text to be added";
>>>> int fd, ret, fsyncrc, fsyncr_rc, openrc, closerc, close2rc;
>>>>
>>>> fd = creat("test.txt", S_IWUSR | S_IRUSR);
>>>> if (fd < 0) {
>>>> perror("creat()");
>>>> exit(1);
>>>> }
>>>> ret = write(fd, str, strlen(str));
>>>> if (ret < 0) {
>>>> perror("write()");
>>>> exit(1);
>>>> }
>>>> openrc = open("test.txt", O_RDONLY);
>>>> if (openrc < 0) {
>>>> perror("creat()");
>>>> exit(1);
>>>> }
>>>> fsyncr_rc = fsync(openrc);
>>>> if (fsyncr_rc < 0)
>>>> perror("fsync()");
>>>> fsyncrc = fsync(fd);
>>>> closerc = close(fd);
>>>> close2rc = close(openrc);
>>>> printf("read fsync rc=%d, write fsync rc=%d, close rc=%d, RO close
>>>> rc=%d\n", fsyncr_rc, fsyncrc, closerc, close2rc);
>>>> }
>>>>
>>>
>>> I can confirm this fails on my machine without nostrictsync:
>>>
>>> $ ./test
>>>
>>> fsync(): Permission denied
>>>
>>> read fsync rc=-1, write fsync rc=0, close rc=0, RO close rc=0
>>>
>>> and works with nostrictsync:
>>>
>>> $ ./test
>>>
>>> read fsync rc=0, write fsync rc=0, close rc=0, RO close rc=0
>>>
>>> So is the bug in the Linux kernel?
>>
>> Yes, it's in the kernel cifsfs module which is forwarding an SMB_FLUSH request
>> (which the spec says must fail on a non-writable handle) to
>> a handle opened as non-writable. Steve hopefully will fix :-).
>
>
>
Thank you. I can confirm that 5.15.1 kernel with this patch applied [1]
works both with the test case you provided earlier as well as with mock
chainbuilds without the need for the nostrictsync mount option. Fedora
kernel-5.14.16-301.fc35.x86_64 was failing without it.
Tested-by: Julian Sikorski <belegdol@gmail.com>
Best regards,
Julian
[1] https://gitlab.com/belegdol/kernel-ark/-/commits/fedora-5.15-cifs-fix/
next prev parent reply other threads:[~2021-11-10 11:23 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-07 21:10 Permission denied when chainbuilding packages with mock Julian Sikorski
2021-11-07 21:44 ` Jeremy Allison
2021-11-07 21:49 ` Jeremy Allison
2021-11-07 22:03 ` Jeremy Allison
2021-11-07 22:15 ` Julian Sikorski
2021-11-07 22:47 ` Jeremy Allison
2021-11-07 22:50 ` Steve French
2021-11-07 22:55 ` Julian Sikorski
2021-11-08 1:46 ` Jeremy Allison
2021-11-07 22:51 ` Julian Sikorski
2021-11-08 1:48 ` Jeremy Allison
2021-11-08 6:59 ` Julian Sikorski
2021-11-08 15:52 ` Julian Sikorski
2021-11-08 16:46 ` Jeremy Allison
2021-11-09 8:10 ` Steve French
2021-11-09 9:26 ` Julian Sikorski
2021-11-10 0:54 ` Jeremy Allison
2021-11-10 7:56 ` Steve French
2021-11-10 11:23 ` Julian Sikorski [this message]
2021-11-13 15:37 ` Julian Sikorski
2021-11-15 3:25 ` Steve French
2021-11-15 7:10 ` Julian Sikorski
2021-11-09 19:25 ` Jeremy Allison
-- strict thread matches above, loose matches on Subject: below --
2021-11-07 15:44 Julian Sikorski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c9af96be-bb75-9487-4f9c-1a53b41e9210@gmail.com \
--to=belegdol@gmail.com \
--cc=jra@samba.org \
--cc=linux-cifs@vger.kernel.org \
--cc=smfrench@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox