<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in dcache.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>008a746a - fs: use wq_has_sleeper() in end_dir_add()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#008a746a</link>
        <description>fs: use wq_has_sleeper() in end_dir_add()The routine is used a lot, while the wakeup almost never has anyone todeal with.wake_up_all() takes an irq-protected spinlock, wq_has_sleeper() &quot;only&quot;contains a full fence -- not free by any means, but still cheaper.Sample result tracing waiters using a custom probe during -j 20 kernelbuild (0 - no waiters, 1 - waiters):@[    wakeprobe+5    __wake_up_common+63    __wake_up+54    __d_add+234    d_splice_alias+146    ext4_lookup+439    path_openat+1746    do_filp_open+195    do_sys_openat2+153    __x64_sys_openat+86    do_syscall_64+82    entry_SYSCALL_64_after_hwframe+118]:[0, 1)             13999 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|[1, ...)               1 |                                                    |Only 1 call out of 14000 with this backtrace had waiters.Signed-off-by: Mateusz Guzik &lt;mjguzik@gmail.com&gt;Link: https://lore.kernel.org/r/20250316232421.1642758-1-mjguzik@gmail.comSigned-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Sun, 16 Mar 2025 23:24:21 +0000</pubDate>
        <dc:creator>Mateusz Guzik &lt;mjguzik@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>3ff6c870 - nfs/vfs: discard d_exact_alias()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#3ff6c870</link>
        <description>nfs/vfs: discard d_exact_alias()d_exact_alias() is a descendent of d_add_unique() which was introduced20 years ago mostly likely to work around problems with NFS servers ofthe time.  It is now not used in several situations were it wasoriginally needed and there have been no reports of problems -presumably the old NFS servers have been improved.  This only place itis now use is in NFSv4 code and the old problematic servers are thoughtto have been v2/v3 only.There is no clear benefit in reusing a unhashed() dentry which happensto have the same name as the dentry we are adding.So this patch removes d_exact_alias() and the one place that it is used.Cc: Trond Myklebust &lt;trond.myklebust@hammerspace.com&gt;Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;Link: https://lore.kernel.org/r/20250226062135.2043651-2-neilb@suse.deSigned-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Wed, 26 Feb 2025 06:18:31 +0000</pubDate>
        <dc:creator>NeilBrown &lt;neilb@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>52e66823 - fs: dcache: move the sysctl to fs/dcache.c</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#52e66823</link>
        <description>fs: dcache: move the sysctl to fs/dcache.cThe sysctl_vfs_cache_pressure belongs to fs/dcache.c, move it tofs/dcache.c from kernel/sysctl.c. As a part of fs/dcache.c cleaning,sysctl_vfs_cache_pressure is changed to a static variable, and changethe inline-type function vfs_pressure_ratio() to out-of-inline type,export vfs_pressure_ratio() with EXPORT_SYMBOL_GPL to be used by otherfiles. Move the unneeded include(linux/dcache.h).Signed-off-by: Kaixiong Yu &lt;yukaixiong@huawei.com&gt;Reviewed-by: Kees Cook &lt;kees@kernel.org&gt;Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;Reviewed-by: Christian Brauner &lt;brauner@kernel.org&gt;Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;Signed-off-by: Joel Granados &lt;joel.granados@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Sat, 11 Jan 2025 07:07:47 +0000</pubDate>
        <dc:creator>Kaixiong Yu &lt;yukaixiong@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>bb504b4d - lockref: remove count argument of lockref_init</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#bb504b4d</link>
        <description>lockref: remove count argument of lockref_initAll users of lockref_init() now initialize the count to 1, so hardcodethat and remove the count argument.Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;Link: https://lore.kernel.org/r/20250130135624.1899988-4-agruenba@redhat.comSigned-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Thu, 30 Jan 2025 13:56:23 +0000</pubDate>
        <dc:creator>Andreas Gruenbacher &lt;agruenba@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>902e09c8 - fix braino in &quot;9p: fix -&gt;rename_sem exclusion&quot;</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#902e09c8</link>
        <description>fix braino in &quot;9p: fix -&gt;rename_sem exclusion&quot;-&gt;d_op can bloody well be NULLFucked-up-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;Fixes: 30d61efe118c &quot;9p: fix -&gt;rename_sem exclusion&quot;Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Mon, 03 Feb 2025 21:16:09 +0000</pubDate>
        <dc:creator>Al Viro &lt;viro@zeniv.linux.org.uk&gt;</dc:creator>
    </item>
<item>
        <title>1751f872 - treewide: const qualify ctl_tables where applicable</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#1751f872</link>
        <description>treewide: const qualify ctl_tables where applicableAdd the const qualifier to all the ctl_tables in the tree except forwatchdog_hardlockup_sysctl, memory_allocation_profiling_sysctls,loadpin_sysctl_table and the ones calling register_net_sysctl (./net,drivers/inifiniband dirs). These are special cases as they use aregistration function with a non-const qualified ctl_table argument ormodify the arrays before passing them on to the registration function.Constifying ctl_table structs will prevent the modification ofproc_handler function pointers as the arrays would reside in .rodata.This is made possible after commit 78eb4ea25cd5 (&quot;sysctl: treewide:constify the ctl_table argument of proc_handlers&quot;) constified all theproc_handlers.Created this by running an spatch followed by a sed command:Spatch:    virtual patch    @    depends on !(file in &quot;net&quot;)    disable optional_qualifier    @    identifier table_name != {      watchdog_hardlockup_sysctl,      iwcm_ctl_table,      ucma_ctl_table,      memory_allocation_profiling_sysctls,      loadpin_sysctl_table    };    @@    + const    struct ctl_table table_name [] = { ... };sed:    sed --in-place \      -e &quot;s/struct ctl_table .table = &amp;uts_kern/const struct ctl_table *table = \&amp;uts_kern/&quot; \      kernel/utsname_sysctl.cReviewed-by: Song Liu &lt;song@kernel.org&gt;Acked-by: Steven Rostedt (Google) &lt;rostedt@goodmis.org&gt; # for kernel/trace/Reviewed-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt; # SCSIReviewed-by: Darrick J. Wong &lt;djwong@kernel.org&gt; # xfsAcked-by: Jani Nikula &lt;jani.nikula@intel.com&gt;Acked-by: Corey Minyard &lt;cminyard@mvista.com&gt;Acked-by: Wei Liu &lt;wei.liu@kernel.org&gt;Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Reviewed-by: Bill O&apos;Donnell &lt;bodonnel@redhat.com&gt;Acked-by: Baoquan He &lt;bhe@redhat.com&gt;Acked-by: Ashutosh Dixit &lt;ashutosh.dixit@intel.com&gt;Acked-by: Anna Schumaker &lt;anna.schumaker@oracle.com&gt;Signed-off-by: Joel Granados &lt;joel.granados@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Tue, 28 Jan 2025 12:48:37 +0000</pubDate>
        <dc:creator>Joel Granados &lt;joel.granados@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>30d61efe - 9p: fix -&gt;rename_sem exclusion</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#30d61efe</link>
        <description>9p: fix -&gt;rename_sem exclusion9p wants to be able to build a path from given dentry to fs root and keepit valid over a blocking operation.-&gt;s_vfs_rename_mutex would be a natural candidate, but there are placeswhere we need that and where we have no way to tell if -&gt;s_vfs_rename_mutexis already held deeper in callchain.  Moreover, it&apos;s only held forcross-directory renames; name changes within the same directory happenwithout it.Solution:	* have d_move() done in -&gt;rename() rather than in its caller	* maintain a 9p-private rwsem (per-filesystem)	* hold it exclusive over the relevant part of -&gt;rename()	* hold it shared over the places where we want the path.That almost works.  FS_RENAME_DOES_D_MOVE is enough to put all d_move()and d_exchange() calls under filesystem&apos;s control.  However, there&apos;salso __d_unalias(), which isn&apos;t covered by any of that.If -&gt;lookup() hits a directory inode with preexisting dentry elsewhere(due to e.g. rename done on server behind our back), d_splice_alias()called by -&gt;lookup() will move/rename that alias.Add a couple of optional methods, so that __d_unalias() would do	if alias-&gt;d_op-&gt;d_unalias_trylock != NULL		if (!alias-&gt;d_op-&gt;d_unalias_trylock(alias))			fail (resulting in -ESTALE from lookup)	__d_move(...)	if alias-&gt;d_op-&gt;d_unalias_unlock != NULL		alias-&gt;d_unalias_unlock(alias)where it currently does __d_move().  9p instances do down_write_trylock()and up_write() of -&gt;rename_mutex.Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Mon, 06 Jan 2025 02:33:17 +0000</pubDate>
        <dc:creator>Al Viro &lt;viro@zeniv.linux.org.uk&gt;</dc:creator>
    </item>
<item>
        <title>95a4ccbb - dissolve external_name.u into separate members</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#95a4ccbb</link>
        <description>dissolve external_name.u into separate members... and document the constraints on the layout.  Kept separate fromthe previous commit to keep the noise separate from actual changes.The reason for explicit __aligned() on -&gt;name[] rather than relyingupon the alignment of the previous field is that the previous iterationof that commit tried to save 4 bytes on 64bit by eliminating a holein there, which broke the assumptions in dentry_string_cmp().Better spell it out and avoid the temptation for the future...Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Tue, 10 Dec 2024 01:03:33 +0000</pubDate>
        <dc:creator>Al Viro &lt;viro@zeniv.linux.org.uk&gt;</dc:creator>
    </item>
<item>
        <title>1c9be84a - make take_dentry_name_snapshot() lockless</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#1c9be84a</link>
        <description>make take_dentry_name_snapshot() locklessUse -&gt;d_seq instead of grabbing -&gt;d_lock; in case of shortname dentriesthat avoids any stores to shared data objects and in case of long nameswe are down to (unavoidable) atomic_inc on the external_name refcount.Makes the thing safer as well - the areas where -&gt;d_seq is held odd areall nested inside the areas where -&gt;d_lock is held, and the latter aremuch more numerous.NOTE: now that there is a lockless path where we might try to graba reference to an already doomed external_name instance, it is nolonger possible for external_name.u.count and external_name.u.headto share space (kudos to Linus for spotting that).To reduce the noise this commit just make external_name.u a struct(instead of union); the next commit will dissolve it.Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Mon, 09 Dec 2024 03:27:51 +0000</pubDate>
        <dc:creator>Al Viro &lt;viro@zeniv.linux.org.uk&gt;</dc:creator>
    </item>
<item>
        <title>58cf9c38 - dcache: back inline names with a struct-wrapped array of unsigned long</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#58cf9c38</link>
        <description>dcache: back inline names with a struct-wrapped array of unsigned long... so that they can be copied with struct assignment (which generatesbetter code) and accessed word-by-word.The type is union shortname_storage; it&apos;s a union of arrays ofunsigned char and unsigned long.struct name_snapshot.inline_name turned into union shortname_storage;users (all in fs/dcache.c) adjusted.struct dentry.d_iname has some users outside of fs/dcache.c; toreduce the amount of noise in commit, it is replaced withunion shortname_storage d_shortname and d_iname is turned into a macrothat expands to d_shortname.string (similar to d_lock handling).That compat macro is temporary - most of the remaining instances willbe taken out by debugfs series, and once that is merged and few othersare taken care of this will go away.Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Tue, 10 Dec 2024 00:35:36 +0000</pubDate>
        <dc:creator>Al Viro &lt;viro@zeniv.linux.org.uk&gt;</dc:creator>
    </item>
<item>
        <title>61bc24ac - make sure that DNAME_INLINE_LEN is a multiple of word size</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#61bc24ac</link>
        <description>make sure that DNAME_INLINE_LEN is a multiple of word size... calling the number of words DNAME_INLINE_WORDS.The next step will be to have a structure to hold inline name arrays(both in dentry and in name_snapshot) and use that to alias theexisting arrays of unsigned char there.  That will allow bothfull-structure copies and convenient word-by-word accesses.Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Tue, 10 Dec 2024 00:15:58 +0000</pubDate>
        <dc:creator>Al Viro &lt;viro@zeniv.linux.org.uk&gt;</dc:creator>
    </item>
<item>
        <title>8c32b87c - dcache: use lockref_init for d_lockref</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#8c32b87c</link>
        <description>dcache: use lockref_init for d_lockrefSigned-off-by: Christoph Hellwig &lt;hch@lst.de&gt;Link: https://lore.kernel.org/r/20250115094702.504610-7-hch@lst.deSigned-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Wed, 15 Jan 2025 09:46:42 +0000</pubDate>
        <dc:creator>Christoph Hellwig &lt;hch@lst.de&gt;</dc:creator>
    </item>
<item>
        <title>da0c0251 - mm/list_lru: simplify the list_lru walk callback function</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#da0c0251</link>
        <description>mm/list_lru: simplify the list_lru walk callback functionNow isolation no longer takes the list_lru global node lock, only use theper-cgroup lock instead.  And this lock is inside the list_lru_one beingwalked, no longer needed to pass the lock explicitly.Link: https://lkml.kernel.org/r/20241104175257.60853-7-ryncsn@gmail.comSigned-off-by: Kairui Song &lt;kasong@tencent.com&gt;Cc: Chengming Zhou &lt;zhouchengming@bytedance.com&gt;Cc: Johannes Weiner &lt;hannes@cmpxchg.org&gt;Cc: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;Cc: Michal Hocko &lt;mhocko@suse.com&gt;Cc: Muchun Song &lt;muchun.song@linux.dev&gt;Cc: Qi Zheng &lt;zhengqi.arch@bytedance.com&gt;Cc: Roman Gushchin &lt;roman.gushchin@linux.dev&gt;Cc: Shakeel Butt &lt;shakeel.butt@linux.dev&gt;Cc: Waiman Long &lt;longman@redhat.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Mon, 04 Nov 2024 17:52:57 +0000</pubDate>
        <dc:creator>Kairui Song &lt;kasong@tencent.com&gt;</dc:creator>
    </item>
<item>
        <title>1e756248 - fs: Reorganize kerneldoc parameter names</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#1e756248</link>
        <description>fs: Reorganize kerneldoc parameter namesReorganize kerneldoc parameter names to match the parameterorder in the function header.Problems identified using Coccinelle.Signed-off-by: Julia Lawall &lt;Julia.Lawall@inria.fr&gt;Link: https://lore.kernel.org/r/20240930112121.95324-9-Julia.Lawall@inria.frSigned-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Mon, 30 Sep 2024 11:20:54 +0000</pubDate>
        <dc:creator>Julia Lawall &lt;Julia.Lawall@inria.fr&gt;</dc:creator>
    </item>
<item>
        <title>e6957c99 - vfs: Add a sysctl for automated deletion of dentry</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#e6957c99</link>
        <description>vfs: Add a sysctl for automated deletion of dentryCommit 681ce8623567 (&quot;vfs: Delete the associated dentry when deleting afile&quot;) introduced an unconditional deletion of the associated dentry when afile is removed. However, this led to performance regressions in specificbenchmarks, such as ilebench.sum_operations/s [0], prompting a revert incommit 4a4be1ad3a6e (&quot;Revert &quot;vfs: Delete the associated dentry whendeleting a file&quot;&quot;).This patch seeks to reintroduce the concept conditionally, where theassociated dentry is deleted only when the user explicitly opts for itduring file removal. A new sysctl fs.automated_deletion_of_dentry isadded for this purpose. Its default value is set to 0.There are practical use cases for this proactive dentry reclamation.Besides the Elasticsearch use case mentioned in commit 681ce8623567,additional examples have surfaced in our production environment. Forinstance, in video rendering services that continuously generate temporaryfiles, upload them to persistent storage servers, and then delete them, alarge number of negative dentries&#8212;serving no useful purpose&#8212;accumulate.Users in such cases would benefit from proactively reclaiming thesenegative dentries.Link: https://lore.kernel.org/linux-fsdevel/202405291318.4dfbb352-oliver.sang@intel.com [0]Link: https://lore.kernel.org/all/20240912-programm-umgibt-a1145fa73bb6@brauner/Suggested-by: Christian Brauner &lt;brauner@kernel.org&gt;Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;Signed-off-by: Yafang Shao &lt;laoar.shao@gmail.com&gt;Link: https://lore.kernel.org/r/20240929122831.92515-1-laoar.shao@gmail.comCc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;Cc: Christian Brauner &lt;brauner@kernel.org&gt;Cc: Jan Kara &lt;jack@suse.cz&gt;Cc: Mateusz Guzik &lt;mjguzik@gmail.com&gt;Signed-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Sun, 29 Sep 2024 12:28:31 +0000</pubDate>
        <dc:creator>Yafang Shao &lt;laoar.shao@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>0fe340a9 - inode: port __I_NEW to var event</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#0fe340a9</link>
        <description>inode: port __I_NEW to var eventPort the __I_NEW mechanism to use the new var event mechanism.Link: https://lore.kernel.org/r/20240823-work-i_state-v3-4-5cd5fd207a57@kernel.orgReviewed-by: Josef Bacik &lt;josef@toxicpanda.com&gt;Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;Signed-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Fri, 23 Aug 2024 12:47:38 +0000</pubDate>
        <dc:creator>Christian Brauner &lt;brauner@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>45fab40d - fs: remove comment about d_rcu_to_refcount</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#45fab40d</link>
        <description>fs: remove comment about d_rcu_to_refcountThis function no longer exists.Signed-off-by: Jeff Layton &lt;jlayton@kernel.org&gt;Link: https://lore.kernel.org/r/20240802-openfast-v1-1-a1cff2a33063@kernel.orgSigned-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Fri, 02 Aug 2024 21:45:02 +0000</pubDate>
        <dc:creator>Jeff Layton &lt;jlayton@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>04c8abae - dcache: keep dentry_hashtable or d_hash_shift even when not used</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#04c8abae</link>
        <description>dcache: keep dentry_hashtable or d_hash_shift even when not usedThe runtime constant feature removes all the users of these variables,allowing the compiler to optimize them away.  It&apos;s quite difficult toextract their values from the kernel text, and the memory saved byremoving them is tiny, and it was never the point of this optimization.Since the dentry_hashtable is a core data structure, it&apos;s valuable fordebugging tools to be able to read it easily.  For instance, scriptsbuilt on drgn, like the dentrycache script[1], rely on it to be able toperform diagnostics on the contents of the dcache.  Annotate it as used,so the compiler doesn&apos;t discard it.Link: https://github.com/oracle-samples/drgn-tools/blob/3afc56146f54d09dfd1f6d3c1b7436eda7e638be/drgn_tools/dentry.py#L325-L355 [1]Fixes: e3c92e81711d (&quot;runtime constants: add x86 architecture support&quot;)Signed-off-by: Stephen Brennan &lt;stephen.s.brennan@oracle.com&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Thu, 29 Aug 2024 18:20:49 +0000</pubDate>
        <dc:creator>Stephen Brennan &lt;stephen.s.brennan@oracle.com&gt;</dc:creator>
    </item>
<item>
        <title>78eb4ea2 - sysctl: treewide: constify the ctl_table argument of proc_handlers</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#78eb4ea2</link>
        <description>sysctl: treewide: constify the ctl_table argument of proc_handlersconst qualify the struct ctl_table argument in the proc_handler functionsignatures. This is a prerequisite to moving the static ctl_tablestructs into .rodata data which will ensure that proc_handler functionpointers cannot be modified.This patch has been generated by the following coccinelle script:```  virtual patch  @r1@  identifier ctl, write, buffer, lenp, ppos;  identifier func !~ &quot;appldata_(timer|interval)_handler|sched_(rt|rr)_handler|rds_tcp_skbuf_handler|proc_sctp_do_(hmac_alg|rto_min|rto_max|udp_port|alpha_beta|auth|probe_interval)&quot;;  @@  int func(  - struct ctl_table *ctl  + const struct ctl_table *ctl    ,int write, void *buffer, size_t *lenp, loff_t *ppos);  @r2@  identifier func, ctl, write, buffer, lenp, ppos;  @@  int func(  - struct ctl_table *ctl  + const struct ctl_table *ctl    ,int write, void *buffer, size_t *lenp, loff_t *ppos)  { ... }  @r3@  identifier func;  @@  int func(  - struct ctl_table *  + const struct ctl_table *    ,int , void *, size_t *, loff_t *);  @r4@  identifier func, ctl;  @@  int func(  - struct ctl_table *ctl  + const struct ctl_table *ctl    ,int , void *, size_t *, loff_t *);  @r5@  identifier func, write, buffer, lenp, ppos;  @@  int func(  - struct ctl_table *  + const struct ctl_table *    ,int write, void *buffer, size_t *lenp, loff_t *ppos);```* Code formatting was adjusted in xfs_sysctl.c to comply with code  conventions. The xfs_stats_clear_proc_handler,  xfs_panic_mask_proc_handler and xfs_deprecated_dointvec_minmax where  adjusted.* The ctl_table argument in proc_watchdog_common was const qualified.  This is called from a proc_handler itself and is calling back into  another proc_handler, making it necessary to change it as part of the  proc_handler migration.Co-developed-by: Thomas Wei&#223;schuh &lt;linux@weissschuh.net&gt;Signed-off-by: Thomas Wei&#223;schuh &lt;linux@weissschuh.net&gt;Co-developed-by: Joel Granados &lt;j.granados@samsung.com&gt;Signed-off-by: Joel Granados &lt;j.granados@samsung.com&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Wed, 24 Jul 2024 18:59:29 +0000</pubDate>
        <dc:creator>Joel Granados &lt;j.granados@samsung.com&gt;</dc:creator>
    </item>
<item>
        <title>aabfe57e - vfs: don&apos;t mod negative dentry count when on shrinker list</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/dcache.c#aabfe57e</link>
        <description>vfs: don&apos;t mod negative dentry count when on shrinker listThe nr_dentry_negative counter is intended to only account negativedentries that are present on the superblock LRU. Therefore, the LRUadd, remove and isolate helpers modify the counter based on whetherthe dentry is negative, but the shrinker list related helpers do notmodify the counter, and the paths that change a dentry betweenpositive and negative only do so if DCACHE_LRU_LIST is set.The problem with this is that a dentry on a shrinker list still hasDCACHE_LRU_LIST set to indicate -&gt;d_lru is in use. The additionalDCACHE_SHRINK_LIST flag denotes whether the dentry is on LRU or ashrink related list. Therefore if a relevant operation (i.e. unlink)occurs while a dentry is present on a shrinker list, and theassociated codepath only checks for DCACHE_LRU_LIST, then it istechnically possible to modify the negative dentry count for adentry that is off the LRU. Since the shrinker list related helpersdo not modify the negative dentry count (because non-LRU dentriesshould not be included in the count) when the dentry is ultimatelyremoved from the shrinker list, this can cause the negative dentrycount to become permanently inaccurate.This problem can be reproduced via a heavy file create/unlink vs.drop_caches workload. On an 80xcpu system, I start 80 tasks eachrunning a 1k file create/delete loop, and one task spinning ondrop_caches. After 10 minutes or so of runtime, the idle/clean cachenegative dentry count increases from somewhere in the range of 5-10entries to several hundred (and increasingly grows beyondnr_dentry_unused).Tweak the logic in the paths that turn a dentry negative or positiveto filter out the case where the dentry is present on a shrinkrelated list. This allows the above workload to maintain an accuratenegative dentry count.Fixes: af0c9af1b3f6 (&quot;fs/dcache: Track &amp; report number of negative dentries&quot;)Signed-off-by: Brian Foster &lt;bfoster@redhat.com&gt;Link: https://lore.kernel.org/r/20240703121301.247680-1-bfoster@redhat.comAcked-by: Ian Kent &lt;ikent@redhat.com&gt;Reviewed-by: Josef Bacik &lt;josef@toxicpanda.com&gt;Reviewed-by: Waiman Long &lt;longman@redhat.com&gt;Signed-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/dcache.c</description>
        <pubDate>Wed, 03 Jul 2024 12:13:01 +0000</pubDate>
        <dc:creator>Brian Foster &lt;bfoster@redhat.com&gt;</dc:creator>
    </item>
</channel>
</rss>
