On Wed, Mar 30, 2022 at 12:10:43PM +1100, Dave Chinner wrote: > @@ -501,7 +504,6 @@ xlog_state_shutdown_callbacks( > struct xlog_in_core *iclog; > LIST_HEAD(cb_list); > > - spin_lock(&log->l_icloglock); It would be really helpful to have a lockdep_assert_held(&log->l_icloglock); here now. > @@ -509,14 +511,16 @@ xlog_state_shutdown_callbacks( > continue; > } > list_splice_init(&iclog->ic_callbacks, &cb_list); > + spin_unlock(&log->l_icloglock); > + > + xlog_cil_process_committed(&cb_list); > + > + spin_lock(&log->l_icloglock); .. and this should be fine because log->l_iclog can't move once we're shut down. I'd maybe add a comment on that, but otherwise this looks fine: Reviewed-by: Christoph Hellwig <hch@xxxxxx>