--- bdc3cb4fd2220c6fde0f35159a902768a75d60f6 +++ 2beb0fbe70ecc0863d6d17e7e58759c3ab766c84 @@ -1119,8 +1119,15 @@ SYSCALL_DEFINE2(umount, char __user *, n { struct path path; int retval; + int lookup_flags = 0; - retval = user_path(name, &path); + if (flags & ~(MNT_FORCE | MNT_DETACH | MNT_EXPIRE | UMOUNT_NOFOLLOW)) + return -EINVAL; + + if (!(flags & UMOUNT_NOFOLLOW)) + lookup_flags |= LOOKUP_FOLLOW; + + retval = user_path_at(AT_FDCWD, name, lookup_flags, &path); if (retval) goto out; retval = -EINVAL;