On Wed, 2017-03-08 at 17:55 -0500, Tejun Heo wrote: > Hello, > > On Wed, Mar 08, 2017 at 05:48:31PM +0100, Jan Kara wrote: > > @@ -710,6 +710,11 @@ static void cgwb_bdi_destroy(struct > > backing_dev_info *bdi) > > */ > > atomic_dec(&bdi->usage_cnt); > > wait_event(cgwb_release_wait, !atomic_read(&bdi > > ->usage_cnt)); > > + /* > > + * Grab back our reference so that we hold it when @bdi > > gets > > + * re-registered. > > + */ > > + atomic_inc(&bdi->usage_cnt); > > So, this is more re-initializing the ref to the initial state so that > it can be re-used, right? Maybe ATOMIC_INIT() is a better choice > here just to clarify what's going on? Seconded. Eventually this is going to get converted to a refcount_t and it will dump a spurious warning on the 0->1 transition. We can avoid that by making this a proper initialization. James