Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753422AbbF2RTa (ORCPT ); Mon, 29 Jun 2015 13:19:30 -0400 Received: from forward-corp1g.mail.yandex.net ([95.108.253.251]:44474 "EHLO forward-corp1g.mail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752596AbbF2RTD (ORCPT ); Mon, 29 Jun 2015 13:19:03 -0400 Authentication-Results: smtpcorp1m.mail.yandex.net; dkim=pass header.i=@yandex-team.ru Subject: [PATCH 4/4] ovl: forbid overlayfs on top of overlayfs From: Konstantin Khlebnikov To: linux-fsdevel@vger.kernel.org, Miklos Szeredi , linux-kernel@vger.kernel.org, Alexander Viro , linux-unionfs@vger.kernel.org Cc: linux-security-module@vger.kernel.org Date: Mon, 29 Jun 2015 20:19:00 +0300 Message-ID: <20150629171900.15730.43569.stgit@buzz> In-Reply-To: <20150629171856.15730.58271.stgit@buzz> References: <20150629171856.15730.58271.stgit@buzz> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1361 Lines: 37 Mounting overlayfs using other overlayfs instance as lower or upper layer triggers false-positive lockdep warning about possible locking recursion of ->i_mutex in iterate_dir(). Nesting already limited with FILESYSTEM_MAX_STACK_DEPTH = 2 to prevent kernel stack overflow. Overlayfs supports multiple lower layers thus the same configuration could be constructed without nesting. Signed-off-by: Konstantin Khlebnikov --- fs/overlayfs/super.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index e5db31f78c7d..381af9a5ece9 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -700,10 +700,13 @@ static bool ovl_is_allowed_fs_type(struct dentry *root) /* * We don't support: + * - overlayfs * - automount filesystems * - filesystems with revalidate (FIXME for lower layer) * - filesystems with case insensitive names */ + if (root->d_sb->s_op == &ovl_super_operations) + return false; if (dop && (dop->d_manage || dop->d_automount || dop->d_revalidate || dop->d_weak_revalidate || -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/