fix bogus read_seqretry() checks introduced in b37199e

read_seqretry() returns true on mismatch, not on match...

Cc: stable@vger.kernel.org # 3.15+
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro f5be3e29 6f18493e

Changed files
+2 -2
fs
+2 -2
fs/namei.c
··· 1137 1137 */ 1138 1138 *inode = path->dentry->d_inode; 1139 1139 } 1140 - return read_seqretry(&mount_lock, nd->m_seq) && 1140 + return !read_seqretry(&mount_lock, nd->m_seq) && 1141 1141 !(path->dentry->d_flags & DCACHE_NEED_AUTOMOUNT); 1142 1142 } 1143 1143 ··· 1174 1174 nd->path.mnt = &mounted->mnt; 1175 1175 nd->path.dentry = mounted->mnt.mnt_root; 1176 1176 nd->seq = read_seqcount_begin(&nd->path.dentry->d_seq); 1177 - if (!read_seqretry(&mount_lock, nd->m_seq)) 1177 + if (read_seqretry(&mount_lock, nd->m_seq)) 1178 1178 goto failed; 1179 1179 } 1180 1180 nd->inode = nd->path.dentry->d_inode;