list_splice(&tmp_list, kill);
 }
 
-static void shrink_submounts(struct mount *mnt, struct list_head *umounts);
+static void shrink_submounts(struct mount *mnt);
 
 static int do_umount(struct mount *mnt, int flags)
 {
        event++;
 
        if (!(flags & MNT_DETACH))
-               shrink_submounts(mnt, &unmounted);
+               shrink_submounts(mnt);
 
        retval = -EBUSY;
        if (flags & MNT_DETACH || !propagate_mount_busy(mnt, 2)) {
  *
  * vfsmount_lock must be held for write
  */
-static void shrink_submounts(struct mount *mnt, struct list_head *umounts)
+static void shrink_submounts(struct mount *mnt)
 {
        LIST_HEAD(graveyard);
        struct mount *m;
                        m = list_first_entry(&graveyard, struct mount,
                                                mnt_expire);
                        touch_mnt_namespace(m->mnt_ns);
-                       umount_tree(m, 1, umounts);
+                       umount_tree(m, 1, &unmounted);
                }
        }
 }