mnt: Clear mnt_expire during pivot_root
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 8 Oct 2014 17:42:57 +0000 (10:42 -0700)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 2 Dec 2014 16:46:51 +0000 (10:46 -0600)
When inspecting the pivot_root and the current mount expiry logic I
realized that pivot_root fails to clear like mount move does.

Add the missing line in case someone does the interesting feat of
moving an expirable submount.  This gives a strong guarantee that root
of the filesystem tree will never expire.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
fs/namespace.c

index f87a90b..fe1c771 100644 (file)
@@ -2967,6 +2967,8 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
        /* mount new_root on / */
        attach_mnt(new_mnt, real_mount(root_parent.mnt), root_mp);
        touch_mnt_namespace(current->nsproxy->mnt_ns);
+       /* A moved mount should not expire automatically */
+       list_del_init(&new_mnt->mnt_expire);
        unlock_mount_hash();
        chroot_fs_refs(&root, &new);
        put_mountpoint(root_mp);