diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-03-20 21:10:51 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-03-30 19:18:51 -0400 |
commit | 38129a13e6e71f666e0468e99fdd932a687b4d7e (patch) | |
tree | 438e817fdf7d224f9fda1186eb24b1bbc37a4b5c /fs/mount.h | |
parent | 0b1b901b5a98bb36943d10820efc796f7cd45ff3 (diff) | |
download | lwn-38129a13e6e71f666e0468e99fdd932a687b4d7e.tar.gz lwn-38129a13e6e71f666e0468e99fdd932a687b4d7e.zip |
switch mnt_hash to hlist
fixes RCU bug - walking through hlist is safe in face of element moves,
since it's self-terminating. Cyclic lists are not - if we end up jumping
to another hash chain, we'll loop infinitely without ever hitting the
original list head.
[fix for dumb braino folded]
Spotted by: Max Kellermann <mk@cm4all.com>
Cc: stable@vger.kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/mount.h')
-rw-r--r-- | fs/mount.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/mount.h b/fs/mount.h index acdb428de393..b29e42f05f34 100644 --- a/fs/mount.h +++ b/fs/mount.h @@ -25,7 +25,7 @@ struct mountpoint { }; struct mount { - struct list_head mnt_hash; + struct hlist_node mnt_hash; struct mount *mnt_parent; struct dentry *mnt_mountpoint; struct vfsmount mnt; |