vserver enabled 3.13.9+ and 3.14+ kernels hang on boot

Jan Rękorajski <[email protected]>
Newsgroups gmane.linux.vserver
Message-ID <[email protected]>
Hi,
The upstream commit b37199e626b31e1175fb06764c5d1d687723aac2
(rcuwalk: recheck mount_lock after mountpoint crossing attempts) in 3.14
and 3.13.9 functionally invalidated one of the changes to fs/namei.c in
vserver patch:

@@ -1238,7 +1335,8 @@ static void follow_dotdot(struct nameida
 
                if (nd->path.dentry == nd->root.dentry &&
                    nd->path.mnt == nd->root.mnt) {
-                       break;
+                       /* for sane '/' avoid follow_mount() */
+                       return;
                }
                if (nd->path.dentry != nd->path.mnt->mnt_root) {
                        /* rare case of legitimate dget_parent()... */

With the above hunk applied vserver enabled 3.13.9 or 3.14.x kernel hangs on
boot when udev is started from initrd. Reverting it fixes the problem.

Does this change serve any purpose other than code path optimization?
Should I expect any breakege after removing it?

-- 
Jan Rękorajski                                 | PLD/Linux
SysAdm                                         | http://www.pld-linux.org/
baggins<at>mimuw.edu.pl
baggins<at>pld-linux.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.