From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4414CC433DF for ; Fri, 21 Aug 2020 17:12:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 224CD20656 for ; Fri, 21 Aug 2020 17:12:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1598029920; bh=GeOPMaAgcqhBSay3ZbXknEfy+kySbISlCBOER5/9U9k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=IWhvKmtd/MZfTo45jR7pCWQ+sXC6DLO5ULEvbOTqzyV29hYCTVbtTzLVhyf5WTHSz CrQF8084cu4qcqf9LCqqF9M+l4RQFoLetsWc/7TBgkY3g1lOIU5jJ1B6CbXenebTHu f3PbPcnvF5mzVbP+xrBWsfl0swlrcNomcLsBNABk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729048AbgHURL6 (ORCPT ); Fri, 21 Aug 2020 13:11:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:50096 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728153AbgHUQRI (ORCPT ); Fri, 21 Aug 2020 12:17:08 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D561A20FC3; Fri, 21 Aug 2020 16:17:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1598026623; bh=GeOPMaAgcqhBSay3ZbXknEfy+kySbISlCBOER5/9U9k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d3z3U/vWwNHqK3DORMHpL7bvYkkwp3ALBpTt2OGEUkaDTs8DZnpxGgFfBywIgqiKv zB25d6iPm2XSxW++EfJqhPJGgXr6mQl3wQPPrEKxJgU2VVR1hfVCCvCyjymC87QLjQ ZzdhyY1TzE8qTJY7yszRs0RB+svQHGRHG4URCGJo= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mike Kravetz , syzbot+d6ec23007e951dadf3de@syzkaller.appspotmail.com, Amir Goldstein , Andrew Morton , Miklos Szeredi , Al Viro , Matthew Wilcox , Colin Walters , Linus Torvalds , Sasha Levin , linux-mm@kvack.org Subject: [PATCH AUTOSEL 5.7 61/61] hugetlbfs: prevent filesystem stacking of hugetlbfs Date: Fri, 21 Aug 2020 12:15:45 -0400 Message-Id: <20200821161545.347622-61-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200821161545.347622-1-sashal@kernel.org> References: <20200821161545.347622-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mike Kravetz [ Upstream commit 15568299b7d9988063afce60731df605ab236e2a ] syzbot found issues with having hugetlbfs on a union/overlay as reported in [1]. Due to the limitations (no write) and special functionality of hugetlbfs, it does not work well in filesystem stacking. There are no know use cases for hugetlbfs stacking. Rather than making modifications to get hugetlbfs working in such environments, simply prevent stacking. [1] https://lore.kernel.org/linux-mm/000000000000b4684e05a2968ca6@google.com/ Reported-by: syzbot+d6ec23007e951dadf3de@syzkaller.appspotmail.com Suggested-by: Amir Goldstein Signed-off-by: Mike Kravetz Signed-off-by: Andrew Morton Acked-by: Miklos Szeredi Cc: Al Viro Cc: Matthew Wilcox Cc: Colin Walters Link: http://lkml.kernel.org/r/80f869aa-810d-ef6c-8888-b46cee135907@oracle.com Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin --- fs/hugetlbfs/inode.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index 991c60c7ffe06..f32759c8e84db 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -1313,6 +1313,12 @@ hugetlbfs_fill_super(struct super_block *sb, struct fs_context *fc) sb->s_magic = HUGETLBFS_MAGIC; sb->s_op = &hugetlbfs_ops; sb->s_time_gran = 1; + + /* + * Due to the special and limited functionality of hugetlbfs, it does + * not work well as a stacking filesystem. + */ + sb->s_stack_depth = FILESYSTEM_MAX_STACK_DEPTH; sb->s_root = d_make_root(hugetlbfs_get_root(sb, ctx)); if (!sb->s_root) goto out_free; -- 2.25.1