On Thu, Jul 15, 2021 at 06:10:22PM +0800, Murphy Zhou wrote: > Hi, > > #Looping generic/270 of xfstests[1] on pmem ramdisk with > mount option: -o dax=always > mkfs.xfs option: -f -b size=4096 -m reflink=0 > can hit this panic now. > > #It's not reproducible on ext4. > #It's not reproducible without dax=always. Hi Murphy! Thank you for the report! Can you, please, check if the following patch fixes the problem? Thank you! -- diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 271f2ca862c8..f5561ea7d90a 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -398,12 +398,12 @@ static void cgwb_release_workfn(struct work_struct *work) blkcg_unpin_online(blkcg); fprop_local_destroy_percpu(&wb->memcg_completions); - percpu_ref_exit(&wb->refcnt); spin_lock_irq(&cgwb_lock); list_del(&wb->offline_node); spin_unlock_irq(&cgwb_lock); + percpu_ref_exit(&wb->refcnt); wb_exit(wb); WARN_ON_ONCE(!list_empty(&wb->b_attached)); kfree_rcu(wb, rcu);