On Mon, Jul 7, 2025 at 7:29 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > (It checks for "dead" or "killed" entries, but why aren't you using > > __lockref_is_dead() here?) > > What's the difference? It checks for dentries currently still going through > ->d_prune()/->d_iput()/->d_release(). Just clarity. There exists a function and using it would make clearer what you're really checking for. > What are you using shrink_dcache_parent() for? I don't. It's called by Ceph code, i.e. send_mds_reconnect(). A broken Ceph-MDS connection apparently triggered this busy loop. (I'm not a Ceph developer. I just care for the monthly Ceph regression that breaks all of our web servers on each and every Linux kernel update. Sad story. However, the Ceph bug I'm really hunting is unrelated to this dcache busy loop.) Max