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

Philipp





--
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/