diff options
Diffstat (limited to 'fs/namespace.c')
| -rw-r--r-- | fs/namespace.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 2c5f1f80bdc2..bf478addb852 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
| @@ -899,13 +899,11 @@ static int do_change_type(struct nameidata *nd, int flag) | |||
| 899 | /* | 899 | /* |
| 900 | * do loopback mount. | 900 | * do loopback mount. |
| 901 | */ | 901 | */ |
| 902 | static int do_loopback(struct nameidata *nd, char *old_name, unsigned long flags, int mnt_flags) | 902 | static int do_loopback(struct nameidata *nd, char *old_name, int recurse) |
| 903 | { | 903 | { |
| 904 | struct nameidata old_nd; | 904 | struct nameidata old_nd; |
| 905 | struct vfsmount *mnt = NULL; | 905 | struct vfsmount *mnt = NULL; |
| 906 | int recurse = flags & MS_REC; | ||
| 907 | int err = mount_is_safe(nd); | 906 | int err = mount_is_safe(nd); |
| 908 | |||
| 909 | if (err) | 907 | if (err) |
| 910 | return err; | 908 | return err; |
| 911 | if (!old_name || !*old_name) | 909 | if (!old_name || !*old_name) |
| @@ -939,7 +937,6 @@ static int do_loopback(struct nameidata *nd, char *old_name, unsigned long flags | |||
| 939 | spin_unlock(&vfsmount_lock); | 937 | spin_unlock(&vfsmount_lock); |
| 940 | release_mounts(&umount_list); | 938 | release_mounts(&umount_list); |
| 941 | } | 939 | } |
| 942 | mnt->mnt_flags = mnt_flags; | ||
| 943 | 940 | ||
| 944 | out: | 941 | out: |
| 945 | up_write(&namespace_sem); | 942 | up_write(&namespace_sem); |
| @@ -1353,7 +1350,7 @@ long do_mount(char *dev_name, char *dir_name, char *type_page, | |||
| 1353 | retval = do_remount(&nd, flags & ~MS_REMOUNT, mnt_flags, | 1350 | retval = do_remount(&nd, flags & ~MS_REMOUNT, mnt_flags, |
| 1354 | data_page); | 1351 | data_page); |
| 1355 | else if (flags & MS_BIND) | 1352 | else if (flags & MS_BIND) |
| 1356 | retval = do_loopback(&nd, dev_name, flags, mnt_flags); | 1353 | retval = do_loopback(&nd, dev_name, flags & MS_REC); |
| 1357 | else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) | 1354 | else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) |
| 1358 | retval = do_change_type(&nd, flags); | 1355 | retval = do_change_type(&nd, flags); |
| 1359 | else if (flags & MS_MOVE) | 1356 | else if (flags & MS_MOVE) |
