diff options
Diffstat (limited to 'fs/pnode.c')
-rw-r--r-- | fs/pnode.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/pnode.c b/fs/pnode.c index 64e9a401d67d..b81231711ad7 100644 --- a/fs/pnode.c +++ b/fs/pnode.c @@ -608,3 +608,19 @@ int propagate_umount(struct list_head *list) return 0; } + +void propagate_remount(struct mount *mnt) +{ + struct mount *parent = mnt->mnt_parent; + struct mount *p = mnt, *m; + struct super_block *sb = mnt->mnt.mnt_sb; + + if (!sb->s_op->copy_mnt_data) + return; + for (p = propagation_next(parent, parent); p; + p = propagation_next(p, parent)) { + m = __lookup_mnt(&p->mnt, mnt->mnt_mountpoint); + if (m) + sb->s_op->copy_mnt_data(m->mnt.data, mnt->mnt.data); + } +} |