[LTP] [PATCH] finit_module02: fix exp. errno for O_WRONLY testcase

xuyang2018.jy@fujitsu.com xuyang2018.jy@fujitsu.com
Mon Nov 22 08:09:54 CET 2021


Hi Jan
> On Wed, Nov 17, 2021 at 8:54 AM xuyang2018.jy@fujitsu.com
> <xuyang2018.jy@fujitsu.com>  wrote:
>>
>> Hi Jan
>>> commit 032146cda855 ("vfs: check fd has read access in
>>> kernel_read_file_from_fd()") changed errno back to EBADF,
>>> which is correct value according to man page, so tweak
>>> the test to expect it for kernels>= 5.15.
>> It seems we still can hit ETXTBSY error if we  use RDWR fd on kernels>=
>> 5.15.
>>
>> This error existed since the following commit because of
>> deny_write_access api
>> commit 39d637af5aa7577f655c58b9e55587566c63a0af
>> Author: Dmitry Kasatkin<dmitry.kasatkin@huawei.com>
>> Date:   Sun Oct 26 12:42:07 2014 +0200
>>
>>       vfs: forbid write access when reading a file into memory
>>
>> I suggest add a RDWR test and send a patch to record a ETXTBSY error(
>> Since linux 4.7).
>>
>> What do you think about this?
>
> (Sorry for delay, I'm catching up with email after holidays)
> Since it's also not documented, I'd wait for Cyril's patch first. But
> we can always change it later (I see patch was already merged).
Yes, I have merged my patch with Richard's review.
Also, I  have documented this error by sending a patch[1](still in 
review) to man-pages community.
[1]https://lore.kernel.org/linux-man/1637136967-13028-1-git-send-email-xuyang2018.jy@fujitsu.com/T/#u

Best Regards
Yang Xu
>
>
>>
>> Best Regards
>> Yang Xu
>>>
>>> Signed-off-by: Jan Stancek<jstancek@redhat.com>
>>> ---
>>>    testcases/kernel/syscalls/finit_module/finit_module02.c | 2 +-
>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/testcases/kernel/syscalls/finit_module/finit_module02.c b/testcases/kernel/syscalls/finit_module/finit_module02.c
>>> index 0d2bf917ea64..9b5d3563b74e 100644
>>> --- a/testcases/kernel/syscalls/finit_module/finit_module02.c
>>> +++ b/testcases/kernel/syscalls/finit_module/finit_module02.c
>>> @@ -52,7 +52,7 @@ static void bad_fd_setup(struct tcase *tc)
>>>
>>>    static void wo_file_setup(struct tcase *tc)
>>>    {
>>> -     if (tst_kvercmp(4, 6, 0)<   0)
>>> +     if (tst_kvercmp(4, 6, 0)<   0 || tst_kvercmp(5, 15, 0)>= 0)
>>>                tc->exp_errno = EBADF;
>>>        else
>>>                tc->exp_errno = ETXTBSY;
>


More information about the ltp mailing list