Hello, again, continuing the brain diarrehea, On Tue, May 14, 2013 at 02:59:45PM -0700, Tejun Heo wrote: > So, while I do like the simplicity of put() returning %true on the > final put, I suspect it's more likely to slowing down fast paths due > to its interface compared to having separate ->release function > combined with void put(). Any ideas? Maybe we can structure put in a way that's difficult to get wrong for the compiler? bool put() { preempt_disable(); if (likely(not killed yet)) { this_cpu_dec(); preempt_enable(); return false; } return put_slowpath(); } This doesn't solve the caller not inlining hot path but well I suppose we can consider that the caller's problem. The above at least wouldn't introduce an unnecessary branch on its own. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html