Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2212483iof; Tue, 7 Jun 2022 23:22:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz01TcnU75uXZXn2IdKO0br7vcO5xHmrsV4h/S5Ny/cL5CvTkWo64ybZYZa63fsLMt9yfCv X-Received: by 2002:a62:6407:0:b0:519:3571:903e with SMTP id y7-20020a626407000000b005193571903emr38295122pfb.30.1654669335623; Tue, 07 Jun 2022 23:22:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654669335; cv=none; d=google.com; s=arc-20160816; b=k7JRTivwXY79tU0/VFyP6e3BnZHHp8eiVzIXfOtyAKRaTVnXCekXkPHl78aUy5KWcm WT8pUMG1iKTOUzomPgYnyx9Qk+DTeuQ2mxQlmtGtpxtFwb4Y0mQ7NDPFWby5GeQvn16A tZc1NTW8jtTNgQUOsjouIMHK7X6ZVjdXnUm763ZEMd8htcD5zPfsWddprVyJo2wC5J0E emkyXSxdvrTpjOcT+tTTqoVzM6D2mxd1dxA2XI1tLoo8tH+424ZftGgdtVSAkcdZDsk2 vNODoWX2UANMo9CB+sD/r8DEv5I1/pkZbOpuZOxCZcRCVF3+BCFc+tOccoxSZkOflK1V 21aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=sYTD/asWMih+4ZRit4Y48W3dzpSBwSztSFrQ8h+8Ez4=; b=QQv02/rLkKrfnkxn93ngK4bP8SF1IGBA5LmcHpIPnjWRyqCizTmZdKjn5zkfYKns7t YOKO4OcvZQsPmSB1FvYWIZbK2gqZeqbZX4qCsOChRZJBZ+BaGFd2C77eXvxa86AUxJbs A6SNsi1EKho5V8wD5z42U4E5TIZUrqit/+q3CCW8BT19tdOZkpJaIDdAsIk076G8doki MKsuz1pAmip1zyeF/ZnzONG8XpmdEmo18fVdE9uJGMCASsRu4BCXo66KKtFp8/9Cy8K7 /2GKXlRBfHJhsHi/Y2s0MvsVNzZL8Cc8wqdFlJO7NP5gWz38/NfeBN2Fww90t8E3Aaj6 +/2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="oJ493/nm"; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id y134-20020a62648c000000b0050d5b4ee692si25446242pfb.106.2022.06.07.23.22.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jun 2022 23:22:15 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="oJ493/nm"; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4F1FD3AB1C9; Tue, 7 Jun 2022 22:42:54 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1443770AbiFHCDL (ORCPT + 99 others); Tue, 7 Jun 2022 22:03:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42736 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1843643AbiFHALR (ORCPT ); Tue, 7 Jun 2022 20:11:17 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7396C27C276; Tue, 7 Jun 2022 12:25:44 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E6B55608CD; Tue, 7 Jun 2022 19:25:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F23AFC385A2; Tue, 7 Jun 2022 19:25:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1654629943; bh=rEXuqKaQFolUhzZoisORWwah/+wIF+yL/H+ScGQFSQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oJ493/nmPL0waQLVvAact7Fs4FxebXhyy1mIGIdDJM20L7gvelatmeXZg/YVLIOuf Ssb9tG707Nl1R0hK/YdShJXB8FoWLSWZ0UP/F/SMYvJcv5cjJ7qmwP/zH6oa6TcQXi aQYIKwnMBLT2xG6mn6CdtLXopVxGr3gw82+FVL0c= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, linux-fsdevel@vger.kernel.org, Giuseppe Scrivano , Amir Goldstein , Christoph Hellwig , "Christian Brauner (Microsoft)" , Miklos Szeredi Subject: [PATCH 5.18 873/879] exportfs: support idmapped mounts Date: Tue, 7 Jun 2022 19:06:31 +0200 Message-Id: <20220607165028.197049374@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220607165002.659942637@linuxfoundation.org> References: <20220607165002.659942637@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christian Brauner commit 3a761d72fa62eec8913e45d29375344f61706541 upstream. Make the two locations where exportfs helpers check permission to lookup a given inode idmapped mount aware by switching it to the lookup_one() helper. This is a bugfix for the open_by_handle_at() system call which doesn't take idmapped mounts into account currently. It's not tied to a specific commit so we'll just Cc stable. In addition this is required to support idmapped base layers in overlay. The overlay filesystem uses exportfs to encode and decode file handles for its index=on mount option and when nfs_export=on. Cc: Cc: Tested-by: Giuseppe Scrivano Reviewed-by: Amir Goldstein Reviewed-by: Christoph Hellwig Signed-off-by: Christian Brauner (Microsoft) Signed-off-by: Miklos Szeredi Signed-off-by: Greg Kroah-Hartman --- fs/exportfs/expfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/fs/exportfs/expfs.c +++ b/fs/exportfs/expfs.c @@ -145,7 +145,7 @@ static struct dentry *reconnect_one(stru if (err) goto out_err; dprintk("%s: found name: %s\n", __func__, nbuf); - tmp = lookup_one_len_unlocked(nbuf, parent, strlen(nbuf)); + tmp = lookup_one_unlocked(mnt_user_ns(mnt), nbuf, parent, strlen(nbuf)); if (IS_ERR(tmp)) { dprintk("%s: lookup failed: %d\n", __func__, PTR_ERR(tmp)); err = PTR_ERR(tmp); @@ -525,7 +525,8 @@ exportfs_decode_fh_raw(struct vfsmount * } inode_lock(target_dir->d_inode); - nresult = lookup_one_len(nbuf, target_dir, strlen(nbuf)); + nresult = lookup_one(mnt_user_ns(mnt), nbuf, + target_dir, strlen(nbuf)); if (!IS_ERR(nresult)) { if (unlikely(nresult->d_inode != result->d_inode)) { dput(nresult);