]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
cachefiles: fix incorrect dentry refcount in cachefiles_cull()
authorNeilBrown <neilb@ownmail.net>
Thu, 26 Mar 2026 22:18:21 +0000 (09:18 +1100)
committerChristian Brauner <brauner@kernel.org>
Tue, 31 Mar 2026 09:52:08 +0000 (11:52 +0200)
commit1635c2acdde86c4f555b627aec873c8677c421ed
tree1a6b03f2e9ef1f4c353e56610e5335808b6217c2
parentd0c3bcd5b8976159d835a897254048e078f447e6
cachefiles: fix incorrect dentry refcount in cachefiles_cull()

The patch mentioned below changed cachefiles_bury_object() to expect 2
references to the 'rep' dentry.  Three of the callers were changed to
use start_removing_dentry() which takes an extra reference so in those
cases the call gets the expected references.

However there is another call to cachefiles_bury_object() in
cachefiles_cull() which did not need to be changed to use
start_removing_dentry() and so was not properly considered.
It still passed the dentry with just one reference so the net result is
that a reference is lost.

To meet the expectations of cachefiles_bury_object(), cachefiles_cull()
must take an extra reference before the call.  It will be dropped by
cachefiles_bury_object().

Reported-by: Marc Dionne <marc.dionne@auristor.com>
Fixes: 7bb1eb45e43c ("VFS: introduce start_removing_dentry()")
Signed-off-by: NeilBrown <neil@brown.name>
Link: https://patch.msgid.link/177456350181.1851489.16359967086642190170@noble.neil.brown.name
Acked-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/cachefiles/namei.c