Getting back to this after a good night's worth of sleep: On Fri, May 06, 2022 at 08:57:53AM -0600, Jens Axboe wrote: > > Just add this: > > > > "Add a small helper to act as the counterpart to nvme_add_user_metadata." > > > > with my signoff: > > > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > > Both done, thanks. I think we're much better of folding "nvme: add nvme_finish_user_metadata helper" into "nvme: refactor nvme_submit_user_cmd()" as the first basically just redos the split done in the first patch in a more fine grained way to allow sharing some of the metadata end I/O code with the uring path, and basically only touches code changes in the first patch again. > >> I did not do your async_size changes, I think you're jetlagged eyes > >> missed that this isn't a sizeof thing on a flexible array, it's just the > >> offset of it. Hence for non-sqe128, the the async size is io_uring_sqe - > >> offsetof where pdu starts, and so forth. > > > > Hmm, this still seems a bit odd to me. So without sqe128 you don't even > > get the cmd data that would fit into the 64-bit SQE? > > You do. Without sqe128, you get sizeof(sqe) - offsetof(cmd) == 16 bytes. > With, you get 16 + 64, 80. Can we please get a little documented helper that does this instead of the two open coded places?