On Thu, Jul 17, 2025 at 05:08:11PM +0200, Mikulas Patocka wrote: > Hi > > I wouldn't do this - these sorts of changes will cause problems when > backporting bugfixes to the stable kernel branches. > > Mikulas
Sure, but doing the right thing in mainline takes priority over ease of backports. The naming here is challenging, and it is annoying that the UAPIs "try_verify_in_tasklet" and "use_bh_bytes" are stuck with misleading names that are tied to obsolete implementation details. But for the internal names I do think this patch is an improvement. There are 4 cases for how data verification can happen now: 1. In a kworker, via a regular workqueue. 2. (When try_verify_in_tasklet=true) Inline in verity_end_io() in softirq context. This happens when verity_end_io() is invoked in the BLOCK_SOFTIRQ. 3. (When try_verify_in_tasklet=true) Inline in verity_end_io() in task context. This happens when verity_end_io() is invoked by kworker, e.g. the loop device's. 4. (When try_verify_in_tasklet=true) In a softirq following verity_end_io(), via the BH workqueue. This happens when verity_end_io() is invoked in hardirq context. The name "in_bh" is wrong for case (3). The name "use_bh_wq_enabled" is wrong for cases (2) and (3). But "in_bh" really just tracks whether sleeping code paths should be executed or not. "may_sleep" better reflects that. For the rest, I think calling (2) through (4) "inline verification" makes sense. It clearly fits cases (2) and (3). It's somewhat of a stretch for (4); however, it's still "inline" in the sense that it tends to happen in the same non-schedulable section as the hardirq itself. Naming things is hard... - Eric