diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2019-07-04 22:57:51 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2019-07-17 04:52:37 +0200 |
commit | 56cbb429d911991170fe867b4bba14f0efed5829 (patch) | |
tree | 0a50d1ccc57136faa844be4e616c9ed7c69322be /fs/mount.h | |
parent | get rid of detach_mnt() (diff) | |
download | linux-56cbb429d911991170fe867b4bba14f0efed5829.tar.xz linux-56cbb429d911991170fe867b4bba14f0efed5829.zip |
switch the remnants of releasing the mountpoint away from fs_pin
We used to need rather convoluted ordering trickery to guarantee
that dput() of ex-mountpoints happens before the final mntput()
of the same. Since we don't need that anymore, there's no point
playing with fs_pin for that.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/mount.h')
-rw-r--r-- | fs/mount.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/mount.h b/fs/mount.h index 84aa8cdf4971..711a4093e475 100644 --- a/fs/mount.h +++ b/fs/mount.h @@ -58,7 +58,10 @@ struct mount { struct mount *mnt_master; /* slave is on master->mnt_slave_list */ struct mnt_namespace *mnt_ns; /* containing namespace */ struct mountpoint *mnt_mp; /* where is it mounted */ - struct hlist_node mnt_mp_list; /* list mounts with the same mountpoint */ + union { + struct hlist_node mnt_mp_list; /* list mounts with the same mountpoint */ + struct hlist_node mnt_umount; + }; struct list_head mnt_umounting; /* list entry for umount propagation */ #ifdef CONFIG_FSNOTIFY struct fsnotify_mark_connector __rcu *mnt_fsnotify_marks; @@ -68,7 +71,7 @@ struct mount { int mnt_group_id; /* peer group identifier */ int mnt_expiry_mark; /* true if marked for expiry */ struct hlist_head mnt_pins; - struct fs_pin mnt_umount; + struct hlist_head mnt_stuck_children; } __randomize_layout; #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */ |