Adding concept of "dead" references to lockref

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

 



Ok, I added the notion of having a dead entry to lockref, because it
simplifies the dcache code a bit. I committed and pushed out the
actual lockref infrastructure, but the actual dcache *use* of that
infrastructure is probably too late for 3.12, or at least it needs
some discussion.

I'm attaching the patch here (but it needs _current_ git as of not
very long ago for the new "dead lockref" support). It simplifies both
the actual killing of dentries (we used to pass this "ref" thing
around to show whether we held the last ref to the dentry or not, this
makes it pointless because we'll just overwrite the refcount anyway)
and it particularly simplifies the getting the reference for the RCU
case, because the whole "it's valid but we couldn't tell" case is
gone.

Comments? It doesn't matter for my insane test-case, since that one
was either looking at a directory with non-zero refcount to begin
with, and even if you looked up a regular file, all the other people
looking it up would guarantee that non-zero refcount. But it basically
makes the (common) special case of "we got the dentry d_lock because
we're looking up a file that nobody else had actively open yet", and
now that's just a reference count operation too.

Simpler code and one less special case sounds like a good thing to me.

                 Linus

Attachment: patch.diff
Description: Binary data


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