On 9/24/21 1:57 PM, Jens Axboe wrote: > On 9/24/21 1:04 PM, Pavel Begunkov wrote: >> From recently open/accept are now able to manipulate fixed file table, >> but it's inconsistent that close can't. Close the gap, keep API same as >> with open/accept, i.e. via sqe->file_slot. > > I really think we should do this for 5.15 to make the API a bit more > sane from the user point of view, folks definitely expect being able > to use IORING_OP_CLOSE with a fixed file that they got with IORING_OP_OPEN, > for example. > > How about this small tweak, basically making it follow the same rules > as other commands that do fixed files: > > 1) Require IOSQE_FIXED_FILE to be set for a direct close. sqe->file_index > will be the descriptor to close in that case. If sqe->fd is set, we > -EINVAL the request. > > 2) If IOSQE_FIXED_FILE isn't set, it's a normal close. As before, if > sqe->file_index is set and IOSQE_FIXED_FILE isn't, then we -EINVAL > the request. > > Basically this incremental on top of yours. Hmm, we don't require that for open or accept. Why not? Seems a bit counter intuitive. But maybe it's better we do this one as-is, and then do a followup patch that solidifies the fact that IOSQE_FIXED_FILE should be set for direct open/accept/close. -- Jens Axboe