Re: [PATCH v3 20/21] __dentry_kill(): new locking scheme

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 07, 2025 at 07:43:49PM +0200, Max Kellermann wrote:
> 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.)

Well, it tries to evict all non-busy dentries, along with the ones that
are only busy due to (non-busy) children, etc.  It's the latter part
that gets you into the fun with iput() on children...  You'll need to
ask ceph folks about what they really want there - I'm not familiar
enough with ceph guts to tell it with any confidence.




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux