I guess we can agree that generic rsrc handling is a good thing to have, even if we have only files at the moment. This consists of related patches from the Bijan's longer series, doesn't include sharing and buffer bits. I suggest to merge it first. It's approx half of the all changes. Based on 5.12 with a few pathes from 5.11 cherry-pick to reduce merge conflicts, because of merging/etc. may wait for a week or so for the next rc before potentially being merged. This also addressed tricky merge conflicts where it was applying and compiling well but still buggy. Bijan, for the changed patches I also dropped your signed-off, so please reply if you're happy with the new versions so we can add it back. There are change logs (e.g. [did so]) in commit messages of those. Mapping to the original v5 series: 1-5/9 (1-5/13 originally), mostly unchanged 6/9 -- my own prep 7/9 (7/13 originally), only file part 8/9 (10/13 originally), only file part 9/9 (11/13 before), unchanged Bijan Mottahedeh (8): io_uring: rename file related variables to rsrc io_uring: generalize io_queue_rsrc_removal io_uring: separate ref_list from fixed_rsrc_data io_uring: add rsrc_ref locking routines io_uring: split alloc_fixed_file_ref_node io_uring: create common fixed_rsrc_ref_node handling routines io_uring: create common fixed_rsrc_data allocation routines io_uring: make percpu_ref_release names consistent Pavel Begunkov (1): io_uring: split ref_node alloc and init fs/io_uring.c | 355 ++++++++++++++++++++-------------- include/uapi/linux/io_uring.h | 7 + 2 files changed, 216 insertions(+), 146 deletions(-) -- 2.24.0