On Tue, Sep 10, 2024 at 09:22:37PM +0100, Pavel Begunkov wrote: > > while ((bio = blk_alloc_discard_bio(bdev, §or, &nr_sects, gfp))) { > if (nowait) > bio->bi_opf |= REQ_NOWAIT; > prev = bio_chain_and_submit(prev, bio); > if (nowait) > break; > } > > Like this? I need to add nr_sects==0 post loop checking either way, > but I don't see how this break would be better any better than > bio_put before the submit from v2. You don't need the bio_chain_and_submit as bio is guaranteed to be NULL here. > > How would adding a proper header instead of bloating fs.h not be > > part of the series adding the first ever block layer uring_cmds? > > Because, apparently, no one have ever gave a damn about it. > I'll add it for you, but with header probing instead of a simple > ifdef I'd call it a usability downgrade. blk ioctls have historically been in fs.h, and keeping it that way instead of moving some in the same range makes perfect sense. Adding new commands to this mess absolutely does not.