diff options
Diffstat (limited to 'debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch')
-rw-r--r-- | debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch b/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch new file mode 100644 index 000000000..c6db9639d --- /dev/null +++ b/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch @@ -0,0 +1,61 @@ +From 54729c769ee68192a795377f27cc479b959ca152 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Wed, 13 Sep 2017 12:32:34 +0200 +Subject: [PATCH 171/347] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD + init +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz + +Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed +INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However +on RT we have also a spinlock which needs an init call so we can't use +that. + +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + fs/dcache.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/fs/dcache.c b/fs/dcache.c +index 1897833a4668..b5e53587d14b 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -3077,6 +3077,8 @@ __setup("dhash_entries=", set_dhash_entries); + + static void __init dcache_init_early(void) + { ++ unsigned int loop; ++ + /* If hashes are distributed across NUMA nodes, defer + * hash allocation until vmalloc space is available. + */ +@@ -3093,11 +3095,16 @@ static void __init dcache_init_early(void) + NULL, + 0, + 0); ++ ++ for (loop = 0; loop < (1U << d_hash_shift); loop++) ++ INIT_HLIST_BL_HEAD(dentry_hashtable + loop); ++ + d_hash_shift = 32 - d_hash_shift; + } + + static void __init dcache_init(void) + { ++ unsigned int loop; + /* + * A constructor could be added for stable state like the lists, + * but it is probably not worth it because of the cache nature +@@ -3121,6 +3128,10 @@ static void __init dcache_init(void) + NULL, + 0, + 0); ++ ++ for (loop = 0; loop < (1U << d_hash_shift); loop++) ++ INIT_HLIST_BL_HEAD(dentry_hashtable + loop); ++ + d_hash_shift = 32 - d_hash_shift; + } + +-- +2.36.1 + |