Received: by 2002:a05:6512:3d0e:0:0:0:0 with SMTP id d14csp50947lfv; Tue, 12 Apr 2022 16:54:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyUAENnGfMmxZXU6GB1QLBSK0/KT/7eTSsB9FWeTh7k+VlqwLRYi1f6PabT7NUJEqX+dIDt X-Received: by 2002:a17:902:8209:b0:158:a031:2fde with SMTP id x9-20020a170902820900b00158a0312fdemr787563pln.66.1649807671796; Tue, 12 Apr 2022 16:54:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649807671; cv=none; d=google.com; s=arc-20160816; b=Y1paAw97mc8WPJ3xYhmzqoD/2ASgeAPHZIFUYvhTtg+IviRMIcQ0qBAmMjgIMTCmUd 3OBE5CXjvG6eB40PyWQbQluqWA3eKzmeRa3Cq4XFIfmaWFD3x9T2sx8Fl90gsS7shGjy GRaz00ALWIFtW738TSzjxmtd5l9fjhBgNQkgSEnIyoJf6CMKTMyDmjzDEHHkG+VnRWUI zYVuR3dgDhuEzqe0uIRePtKth7Ndh17LkPEloYTwzmmTREgD5o/+yYnKJ6XdaXfGhs9c b+Ubz1+ODiIiCIJ2wK7bUy6M73YBHgUDqqicCf9OquD5TnjSkeVDy/GK6yJ1W9C80D8F WLkA== 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=LuztEpPCI4u+J9pMqBykXUFijJSksYIhsIF86T/Gxeo=; b=c3kD6X7LATsWO07Pv3WyE1AiAW8bPbjzSGVSqf7GFLE2QfR54pcBTZ2VMV53OMx7gl m3XXUAigtbjgPqucZgGIt6YxayRdUMJgTZLgt6H+7uRJhisVupJx969k7yZVRCP9WjNt ZHr9UW8kRuua0xmSXbWSPwYrL3hKiEnh5bw6eIS84L949tYdhasBBQfjQXum9Adv8fHN xVzJ9ycuokrYzrsRzh3X7G3whbItrmI0NNSRTQlcz87E66Mcsx2ukXI1BK+Hbs9wYXFM 4+COJYUYFCgvGEMCLzqcaFbgt5OFE3cyJC9zVbjWAsXPMMZWuzzWX0rBzirMJNTl9kvD 4agw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=O7Drx1bW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 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. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id b4-20020a170902d50400b0015495894d28si1266690plg.412.2022.04.12.16.54.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 16:54:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=O7Drx1bW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 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 E069C1F42C1; Tue, 12 Apr 2022 14:49:16 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350985AbiDLGsW (ORCPT + 99 others); Tue, 12 Apr 2022 02:48:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351160AbiDLGoJ (ORCPT ); Tue, 12 Apr 2022 02:44:09 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BFDB939810; Mon, 11 Apr 2022 23:37:36 -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 sin.source.kernel.org (Postfix) with ESMTPS id 2D364CE1C0A; Tue, 12 Apr 2022 06:37:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40602C385A8; Tue, 12 Apr 2022 06:37:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649745453; bh=HhsWse4aJa2j35JND5dIW4AAU37/WjdA3YvpJ1bUwCI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O7Drx1bWo+GTSUOQbgxbot0Utd42v1gW0s9E0AgZO9YWeArhfFpDKqrkO+vJS2P1Q 0uZVUblAutssEiIHDF6+x5MZ51IpNoC2pc4sWl28ucDRlNbte5NO6bJPJMsDuSdgGA 7pl++LtsCA9g8R8RhPdch94CuLBkpG62Q5vE18zk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lyu Tao , ChenXiaoSong , Trond Myklebust , Sasha Levin Subject: [PATCH 5.10 100/171] Revert "NFSv4: Handle the special Linux file open access mode" Date: Tue, 12 Apr 2022 08:29:51 +0200 Message-Id: <20220412062930.778099991@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220412062927.870347203@linuxfoundation.org> References: <20220412062927.870347203@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=-2.0 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=no 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: ChenXiaoSong [ Upstream commit ab0fc21bc7105b54bafd85bd8b82742f9e68898a ] This reverts commit 44942b4e457beda00981f616402a1a791e8c616e. After secondly opening a file with O_ACCMODE|O_DIRECT flags, nfs4_valid_open_stateid() will dereference NULL nfs4_state when lseek(). Reproducer: 1. mount -t nfs -o vers=4.2 $server_ip:/ /mnt/ 2. fd = open("/mnt/file", O_ACCMODE|O_DIRECT|O_CREAT) 3. close(fd) 4. fd = open("/mnt/file", O_ACCMODE|O_DIRECT) 5. lseek(fd) Reported-by: Lyu Tao Signed-off-by: ChenXiaoSong Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin --- fs/nfs/inode.c | 1 - fs/nfs/nfs4file.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index f27ecc2e490f..1adece1cff3e 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c @@ -1139,7 +1139,6 @@ int nfs_open(struct inode *inode, struct file *filp) nfs_fscache_open_file(inode, filp); return 0; } -EXPORT_SYMBOL_GPL(nfs_open); /* * This function is called whenever some part of NFS notices that diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c index a1e5c6b85ded..7b13408a2d70 100644 --- a/fs/nfs/nfs4file.c +++ b/fs/nfs/nfs4file.c @@ -51,7 +51,7 @@ nfs4_file_open(struct inode *inode, struct file *filp) return err; if ((openflags & O_ACCMODE) == 3) - return nfs_open(inode, filp); + openflags--; /* We can't create new files here */ openflags &= ~(O_CREAT|O_EXCL); -- 2.35.1