VFS: Parallel unmounting of filesystems produces system call error

From: Philipp Hachtmann
Date: Tue Nov 18 2014 - 10:49:47 EST

Hi Al,

I just ran some tests involving many parallel mount and unmount
operations. I sometimes get EINVAL and the umount program says "not
mounted". Which is definitively wrong. It feels like a race condition
somewhere in the VFS code.

I use todays master branch (commit fc14f9c1272f62c3) on s390 with 1024
DASD devices.

In fs/namespace.c, sys_umount:

> retval = user_path_mountpoint_at(AT_FDCWD, name,
> lookup_flags, &path);
> retval = -EINVAL;
> if (path.dentry != path.mnt->mnt_root)
> goto dput_and_out;
This seems to be erroneously true from time to time.

The script does something equivalent to:
> for n in $DEVNODES; do
> umount $n &
> done

Do you have any idea what's wrong?

Kind regards


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/