From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Hachtmann Subject: VFS: Parallel unmounting of filesystems produces system call error Date: Tue, 18 Nov 2014 16:49:35 +0100 Message-ID: <20141118164935.19771a88@lilie> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: viro@zeniv.linux.org.uk Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org 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