Re: Unionmount and overlayfs testsuite

From: Miklos Szeredi
Date: Tue Jun 03 2014 - 09:22:27 EST


On Tue, Jun 03, 2014 at 11:33:54AM +0100, David Howells wrote:
> Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
>
> > Fix now pushed to overlayfs.v22/overlayfs.current.
>
> I ran my testscript, which leaves a clean set up and mounted overlay fs
> behind. I then ran:
>
> for ((i=100; i<=129; i++)); do mv /mnt/a/foo$i /mnt/a/bar$i; done
> for ((i=100; i<=129; i++)); do mv /mnt/a/dir$i /mnt/a/dir2$i; done
>
> leading to:
>
> =============================================
> [ INFO: possible recursive locking detected ]
> 3.15.0-rc6-fsdevel+ #382 Tainted: G W
> ---------------------------------------------
> mv/27935 is trying to acquire lock:
> (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [<ffffffff8111e555>] vfs_rmdir+0x59/0xe8
>
> but task is already holding lock:
> (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [<ffffffff811e12a9>] ovl_clear_empty+0x175/0x1eb

And this one is a missing annotation in overlayfs. Tested patch pushed to the
usual branches.

Thanks,
Miklos

---
fs/overlayfs/dir.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -253,7 +253,7 @@ static struct dentry *ovl_clear_empty(st

unlock_rename(workdir, upperdir);
ovl_cleanup_whiteouts(upper, list);
- mutex_lock(&wdir->i_mutex);
+ mutex_lock_nested(&wdir->i_mutex, I_MUTEX_PARENT);
ovl_cleanup(wdir, upper);
mutex_unlock(&wdir->i_mutex);

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