Re: IORING_OP_CLOSE fails on fd opened with O_PATH

Jens Axboe
2020-06-10T01:52:09Z

On 6/8/20 11:16 PM, Clay Harris wrote:
> On Mon, Jun 08 2020 at 20:14:51 -0600, Jens Axboe quoth thus:
>
>> On 6/8/20 7:40 PM, Clay Harris wrote:
>>> On Mon, Jun 08 2020 at 14:19:56 -0600, Jens Axboe quoth thus:
>>>
>>>> On 6/8/20 5:21 AM, Clay Harris wrote:
>>>>> On Sun, May 31 2020 at 08:46:03 -0600, Jens Axboe quoth thus:
>>>>>
>>>>>> On 5/31/20 6:47 AM, Clay Harris wrote:
>>>>>>> Tested on kernel 5.6.14
>>>>>>>
>>>>>>> $ ./closetest closetest.c
>>>>>>>
>>>>>>> path closetest.c open on fd 3 with O_RDONLY
>>>>>>> ---- io_uring close(3)
>>>>>>> ---- ordinary close(3)
>>>>>>> ordinary close(3) failed, errno 9: Bad file descriptor
>>>>>>>
>>>>>>>
>>>>>>> $ ./closetest closetest.c opath
>>>>>>>
>>>>>>> path closetest.c open on fd 3 with O_PATH
>>>>>>> ---- io_uring close(3)
>>>>>>> io_uring close() failed, errno 9: Bad file descriptor
>>>>>>> ---- ordinary close(3)
>>>>>>> ordinary close(3) returned 0
>>>>>>
>>>>>> Can you include the test case, please? Should be an easy fix, but no
>>>>>> point rewriting a test case if I can avoid it...
>>>>>
>>>>> Sure. Here's a cleaned-up test program.
>>>>> https://claycon.org/software/io_uring/tests/close_opath.c
>>>>
>>>> Thanks for sending this - but it's GPL v3, I can't take that. I'll
>>>> probably just add an O_PATH test case to the existing open-close test
>>>> cases.
>>>
>>> I didn't realize that would be an issue.
>>> I'll change it. Would you prefer GPL 2, or should I just delete the
>>> license line altogether?
>>
>> It's not a huge deal, but at the same time I see no reason to add GPL
>> v3 unless I absolutely have to (and I don't). So yeah, if you could
>> just post with MIT (like the other test programs), then that'd be
>> preferable.
>
> * Change license to MIT.
> Done.

Thanks, edited it to turn it into something that can be included as
a liburing regression test case.

--
Jens Axboe