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:
quoted
@@ -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