summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch')
-rw-r--r--debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch36
1 files changed, 18 insertions, 18 deletions
diff --git a/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
index 8a43098f4..bd836c1ba 100644
--- a/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
+++ b/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
@@ -1,8 +1,8 @@
-From aeadd35a13f446ec84a832549b2815fc3de30917 Mon Sep 17 00:00:00 2001
+From 5cdea9eaefef34046668dc341e43f742c74cf980 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 14 Sep 2016 14:35:49 +0200
Subject: [PATCH 184/323] fs/dcache: use swait_queue instead of waitqueue
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
which disables preemption. As a workaround convert it to swait.
@@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
12 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/fs/afs/dir_silly.c b/fs/afs/dir_silly.c
-index dae9a57d7ec0..9a6a0ec4d1fb 100644
+index dae9a57d7ec0c..9a6a0ec4d1fb5 100644
--- a/fs/afs/dir_silly.c
+++ b/fs/afs/dir_silly.c
@@ -239,7 +239,7 @@ int afs_silly_iput(struct dentry *dentry, struct inode *inode)
@@ -37,7 +37,7 @@ index dae9a57d7ec0..9a6a0ec4d1fb 100644
_enter("%p{%pd},%llx", dentry, dentry, vnode->fid.vnode);
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
-index 799be3a5d25e..d5165a7da071 100644
+index 799be3a5d25e1..d5165a7da0718 100644
--- a/fs/cifs/readdir.c
+++ b/fs/cifs/readdir.c
@@ -81,7 +81,7 @@ cifs_prime_dcache(struct dentry *parent, struct qstr *name,
@@ -50,10 +50,10 @@ index 799be3a5d25e..d5165a7da071 100644
cifs_dbg(FYI, "%s: for %s\n", __func__, name->name);
diff --git a/fs/dcache.c b/fs/dcache.c
-index ea0485861d93..1f4255ef8722 100644
+index 976c7474d62a9..4bcd832ace5dc 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
-@@ -2518,21 +2518,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n)
+@@ -2519,21 +2519,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n)
static void d_wait_lookup(struct dentry *dentry)
{
@@ -89,7 +89,7 @@ index ea0485861d93..1f4255ef8722 100644
{
unsigned int hash = name->hash;
struct hlist_bl_head *b = in_lookup_hash(parent, hash);
-@@ -2647,7 +2650,7 @@ void __d_lookup_done(struct dentry *dentry)
+@@ -2648,7 +2651,7 @@ void __d_lookup_done(struct dentry *dentry)
hlist_bl_lock(b);
dentry->d_flags &= ~DCACHE_PAR_LOOKUP;
__hlist_bl_del(&dentry->d_u.d_in_lookup_hash);
@@ -99,7 +99,7 @@ index ea0485861d93..1f4255ef8722 100644
hlist_bl_unlock(b);
INIT_HLIST_NODE(&dentry->d_u.d_alias);
diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c
-index 14e99ffa57af..eb899feaf82d 100644
+index 14e99ffa57af9..eb899feaf82dd 100644
--- a/fs/fuse/readdir.c
+++ b/fs/fuse/readdir.c
@@ -160,7 +160,7 @@ static int fuse_direntplus_link(struct file *file,
@@ -112,7 +112,7 @@ index 14e99ffa57af..eb899feaf82d 100644
if (!o->nodeid) {
/*
diff --git a/fs/namei.c b/fs/namei.c
-index 3ff954a2bbd1..01e3f8195ee1 100644
+index cb37d7c477e0b..f4961a4af74c5 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1532,7 +1532,7 @@ static struct dentry *__lookup_slow(const struct qstr *name,
@@ -124,7 +124,7 @@ index 3ff954a2bbd1..01e3f8195ee1 100644
/* Don't go there if it's already dead */
if (unlikely(IS_DEADDIR(inode)))
-@@ -3085,7 +3085,7 @@ static struct dentry *lookup_open(struct nameidata *nd, struct file *file,
+@@ -3079,7 +3079,7 @@ static struct dentry *lookup_open(struct nameidata *nd, struct file *file,
struct dentry *dentry;
int error, create_error = 0;
umode_t mode = op->mode;
@@ -134,7 +134,7 @@ index 3ff954a2bbd1..01e3f8195ee1 100644
if (unlikely(IS_DEADDIR(dir_inode)))
return ERR_PTR(-ENOENT);
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
-index 9f88ca7b2001..bc8a78ecfe1c 100644
+index 9f88ca7b20015..bc8a78ecfe1c3 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -484,7 +484,7 @@ void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry,
@@ -156,7 +156,7 @@ index 9f88ca7b2001..bc8a78ecfe1c 100644
struct dentry *res;
struct iattr attr = { .ia_valid = ATTR_OPEN };
diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c
-index b27ebdccef70..f86c98a7ed04 100644
+index b27ebdccef703..f86c98a7ed047 100644
--- a/fs/nfs/unlink.c
+++ b/fs/nfs/unlink.c
@@ -13,7 +13,7 @@
@@ -178,7 +178,7 @@ index b27ebdccef70..f86c98a7ed04 100644
status = -EBUSY;
spin_lock(&dentry->d_lock);
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 712948e97991..585d0afd1af6 100644
+index 712948e979911..585d0afd1af61 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -96,6 +96,7 @@
@@ -199,7 +199,7 @@ index 712948e97991..585d0afd1af6 100644
if (IS_ERR(child))
goto end_instantiate;
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
-index aff9593feb73..d1a29668bff8 100644
+index aff9593feb73c..d1a29668bff84 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -684,7 +684,7 @@ static bool proc_sys_fill_cache(struct file *file,
@@ -212,7 +212,7 @@ index aff9593feb73..d1a29668bff8 100644
if (IS_ERR(child))
return false;
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
-index 6f95c3300cbb..c1290db778bd 100644
+index 6f95c3300cbbb..c1290db778bdd 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -106,7 +106,7 @@ struct dentry {
@@ -234,7 +234,7 @@ index 6f95c3300cbb..c1290db778bd 100644
extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *);
extern struct dentry * d_exact_alias(struct dentry *, struct inode *);
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
-index 33442fd018a0..4612bb5be6ca 100644
+index 33442fd018a06..4612bb5be6ca4 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -1675,7 +1675,7 @@ struct nfs_unlinkdata {
@@ -247,7 +247,7 @@ index 33442fd018a0..4612bb5be6ca 100644
struct nfs_fattr dir_attr;
long timeout;
diff --git a/kernel/sched/swait.c b/kernel/sched/swait.c
-index e1c655f928c7..f230b1ac7f91 100644
+index e1c655f928c74..f230b1ac7f910 100644
--- a/kernel/sched/swait.c
+++ b/kernel/sched/swait.c
@@ -64,6 +64,7 @@ void swake_up_all(struct swait_queue_head *q)
@@ -259,5 +259,5 @@ index e1c655f928c7..f230b1ac7f91 100644
list_splice_init(&q->task_list, &tmp);
while (!list_empty(&tmp)) {
--
-2.43.0
+2.44.0