<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana'; COLOR: #000000">
<DIV>Hello Dave,</DIV>
<DIV> </DIV>
<DIV>Looking at the patch, I see that now we call xfs_idestroy_fork() in RCU 
callback. This can do the following chain:</DIV>
<DIV> </DIV>
<DIV>xfs_iext_destroy => xfs_iext_irec_remove => 
xfs_iext_realloc_indirect=> kmem_realloc => kmem_alloc => kmem_alloc 
=> congestion_wait()</DIV>
<DIV> </DIV>
<DIV>At least according to documentation, the RCU callback cannot block, since 
it may be called from softirq context. Is this fine?</DIV>
<DIV> </DIV>
<DIV>Thanks,</DIV>
<DIV>Alex.</DIV>
<DIV> </DIV>
<DIV>P.S.: I have submitted a patch called “[PATCH] xfs: optimize destruction of 
the indirection array”, which changes xfs_iext_destroy to call only kmem_free(). 
But this patch got stuck in the spam filter of the mailing list, and Brent is 
working to release it from there.</DIV>
<DIV> </DIV>
<DIV> </DIV><PRE> </PRE></DIV></DIV></BODY></HTML>