Hello, On Wed, Mar 04, 2020 at 02:10:26PM -0500, Theodore Y. Ts'o wrote: > On Wed, Mar 04, 2020 at 01:50:56PM -0500, Tejun Heo wrote: > > Lifetime rules in block layer are kinda nebulous. Some of it comes > > from the fact that some objects are reused. Instead of the usual, > > create-use-release, they get repurposed to be associated with > > something else. When looking at such an object from some paths, we > > don't necessarily have ownership of all of the members. > > I wonder if the current rules should be better documented, and that > perhaps we should revisit some of them so we can tighten them down? Oh yeah, that'd be nice for sure. We've been papering over stuff constantly for probably over a decade now. It'd be really nice if we could clean the house and have sane nominal lifetime rules for block objects. > For things that are likely to be long-lived, such as anything > corresponding to a bdi or block device, perhaps it would be better if > the lifetime rules can be made tighter? The cost of needing to > release and reallocate longer lived objects is going to be negligible, > and benefits of improving code readability, reliability, and > robuestness might be well worth it. I full-heartedly agree. It's just a lot of historical accumulation and not a lot of manpower directed at cleaning it up. Thanks. -- tejun