On Thu, Aug 15, 2019 at 11:38 PM Martijn Coenen <maco@xxxxxxxxxxx> wrote: > > On Wed, Aug 14, 2019 at 12:47 PM Ming Lei <ming.lei@xxxxxxxxxx> wrote: > > blk_queue_init_done() is only called in blk_queue_init_done() for > > this purpose, so this approach should be fine, IMO. > > I was thinking somebody might add more stuff to "init" in the future, > and then that new stuff would now no longer be executed for the loop > driver. The name "init" is pretty generic...but if that's not a > concern I'm happy with your proposal as well. There's one more > "freeze" I'd like to get rid of - we also call LOOP_SET_STATUS(64), > and there's a freeze in there because lo->transfer is modified. That > makes sense, but I was hoping we can make that freeze conditional on > whether lo->transfer would actually change value; if it stays the > same, I think freezing is not necessary. The queue freeze in SET_STATUS may not be avoided, not only .transfer, there are also .lo_offset, .size, filename, dio and others. If nothing will change, why does the userspace bother to send SET_STATUS? Thanks, Ming Lei