This is a note to let you know that I've just added the patch titled fix d_walk()/non-delayed __d_free() race to the 3.14-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: fix-d_walk-non-delayed-__d_free-race.patch and it can be found in the queue-3.14 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From w@xxxxxx Fri Sep 9 16:26:43 2016 From: Willy Tarreau <w@xxxxxx> Date: Sat, 27 Aug 2016 11:31:35 +0200 Subject: fix d_walk()/non-delayed __d_free() race To: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>, Jiri Slaby <jslaby@xxxxxxx> Cc: Jari Ruusu <jariruusu@xxxxxxxxxxxxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, stable@xxxxxxxxxxxxxxx, Al Viro <viro@xxxxxxxxxxxxxxxxxx>, Ben Hutchings <ben@xxxxxxxxxxxxxxx> Message-ID: <20160827093135.GA28378@xxxxxx> Content-Disposition: inline From: Willy Tarreau <w@xxxxxx> 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@xxxxxxxxxxxxxxx # 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: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/dcache.c | 1 + 1 file changed, 1 insertion(+) --- a/fs/dcache.c +++ b/fs/dcache.c @@ -2652,6 +2652,7 @@ static void __d_materialise_dentry(struc 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; Patches currently in stable-queue which might be from w@xxxxxx are queue-3.14/fix-d_walk-non-delayed-__d_free-race.patch queue-3.14/hid-hid-input-add-parentheses-to-quell-gcc-warning.patch queue-3.14/revert-can-fix-handling-of-unmodifiable-configuration-options-fix.patch queue-3.14/be2iscsi-fix-bogus-warn_on-length-check.patch queue-3.14/stb6100-fix-buffer-length-check-in-stb6100_write_reg_range.patch queue-3.14/alsa-oxygen-fix-logical-not-parentheses-warning.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html