On 9/24/21 9:06 PM, Jens Axboe wrote: > 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 Accept takes a fd as an argument and so IOSQE_FIXED_FILE already applies to it and can't be used as described. Close is just made consistent with the rest. > do a followup patch that solidifies the fact that IOSQE_FIXED_FILE > should be set for direct open/accept/close. > -- Pavel Begunkov