All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Slaby <jslaby@suse.cz>
To: stable@vger.kernel.org
Cc: Willy Tarreau <w@1wt.eu>, Jiri Slaby <jslaby@suse.cz>
Subject: [patch added to 3.12-stable] fix d_walk()/non-delayed __d_free() race
Date: Fri, 23 Sep 2016 10:06:24 +0200	[thread overview]
Message-ID: <20160923080636.9957-1-jslaby@suse.cz> (raw)

From: Willy Tarreau <w@1wt.eu>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

I checked Jari's explanation below and found that v3.14.77 and v3.12.62
are missing the same fix as 3.10. In fact Al's original commit 3d56c25
("fix d_walk()/non-delayed __d_free() race") used to mention to check
this __d_materialise_dentry() function in the Cc: stable line, but this
got lost during the backports.

Normally all of our 3 kernels need to apply the following patch that
Ben correctly put in 3.16 and 3.2. I'm fixing the backport in 3.10.103
right now.

On Mon, Aug 22, 2016 at 04:56:57PM +0300, Jari Ruusu wrote:
> This patch for 3.10 branch appears to be missing one important
>
> +       dentry->d_flags |= DCACHE_RCUACCESS;
>
> in fs/dcache.c __d_materialise_dentry() function. When Ben Hutchings
> backported Al Viro's original fix to stable branches that he maintains,
> he added that one additional line to both 3.2 and 3.16 branches. Please
> consider including that additional one line fix for 3.10 stable branch
> also.
>
>
> Ben Hutchings said this on his 3.2.82-rc1 patch:
> [bwh: Backported to 3.2:
>  - Adjust context
>  - Also set the flag in __d_materialise_dentry())]
>
> http://marc.info/?l=linux-kernel&m=147117565612275&w=2
>
>
> Ben Hutchings said this on his 3.16.37-rc1 patch:
> [bwh: Backported to 3.16:
>  - Adjust context
>  - Also set the flag in __d_materialise_dentry())]
>
> http://marc.info/?l=linux-kernel&m=147117433412006&w=2
>
>
> Also mentioned by Sasha Levin on 3.18 and 4.1 commits:
> Cc: stable@vger.kernel.org # v3.2+ (and watch out for __d_materialise_dentry())
>
> http://marc.info/?l=linux-stable-commits&m=146648034410827&w=2
> http://marc.info/?l=linux-stable-commits&m=146647471009771&w=2


Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 fs/dcache.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/dcache.c b/fs/dcache.c
index 9befdcea22fa..11ded5b0b853 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -2619,6 +2619,7 @@ static void __d_materialise_dentry(struct dentry *dentry, struct dentry *anon)
 	switch_names(dentry, anon);
 	swap(dentry->d_name.hash, anon->d_name.hash);
 
+	dentry->d_flags |= DCACHE_RCUACCESS;
 	dentry->d_parent = dentry;
 	list_del_init(&dentry->d_child);
 	anon->d_parent = dparent;
-- 
2.10.0


             reply	other threads:[~2016-09-23  8:06 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-23  8:06 Jiri Slaby [this message]
2016-09-23  8:06 ` [patch added to 3.12-stable] ext4: avoid modifying checksum fields directly during checksum verification Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] timers: Use proper base migration in add_timer_on() Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] ext4: use __GFP_NOFAIL in ext4_free_blocks() Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] Revert "wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel" Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] net/irda: handle iriap_register_lsap() allocation failure Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] tcp: fix use after free in tcp_xmit_retransmit_queue() Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] net/mlx5: Added missing check of msg length in verifying its signature Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] tcp: properly scale window in tcp_v[46]_reqsk_send_ack() Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] tun: fix transmit timestamp support Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] bonding: Fix bonding crash Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] net: ratelimit warnings about dst entry refcount underflow or overflow Jiri Slaby
2016-09-23  8:06 ` [patch added to 3.12-stable] ipv6: release dst in ping_v6_sendmsg Jiri Slaby
  -- strict thread matches above, loose matches on Subject: below --
2016-09-22  7:11 [patch added to 3.12-stable] MIPS: KVM: Check for pfn noslot case Jiri Slaby
2016-09-22  7:11 ` [patch added to 3.12-stable] fix d_walk()/non-delayed __d_free() race Jiri Slaby
2016-07-12  9:40 [patch added to 3.12-stable] macintosh/therm_windtunnel: Export I2C module alias information Jiri Slaby
2016-07-12  9:40 ` [patch added to 3.12-stable] fix d_walk()/non-delayed __d_free() race Jiri Slaby

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160923080636.9957-1-jslaby@suse.cz \
    --to=jslaby@suse.cz \
    --cc=stable@vger.kernel.org \
    --cc=w@1wt.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.