On 1/21/20 5:05 PM, Pavel Begunkov wrote: > Preparation without functional changes. Adds io_get_file(), that allows > to grab files not only into req->file. > > Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> > --- > fs/io_uring.c | 66 ++++++++++++++++++++++++++++++++------------------- > 1 file changed, 41 insertions(+), 25 deletions(-) > > diff --git a/fs/io_uring.c b/fs/io_uring.c > index 8f7846cb1ebf..e9e4aee0fb99 100644 > --- a/fs/io_uring.c > +++ b/fs/io_uring.c > @@ -1161,6 +1161,15 @@ static struct io_kiocb *io_get_req(struct io_ring_ctx *ctx, > return NULL; > } > > +static inline void io_put_file(struct io_ring_ctx *ctx, struct file *file, > + bool fixed) > +{ > + if (fixed) > + percpu_ref_put(&ctx->file_data->refs); > + else > + fput(file); > +} Just make this take struct io_kiocb? Apart from that, looks fine to me. -- Jens Axboe