Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp234789ybg; Thu, 17 Oct 2019 22:06:08 -0700 (PDT) X-Google-Smtp-Source: APXvYqyswp7QRuUMNDlYPu2siDksKbB3v4F6E3N+TYXGCYxcjeXicY4bjkx4gYEsmc0P2GO2IK1m X-Received: by 2002:aa7:d389:: with SMTP id x9mr7707599edq.33.1571375168718; Thu, 17 Oct 2019 22:06:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571375168; cv=none; d=google.com; s=arc-20160816; b=rKDJDolKpz/43SduxlW/7kHuPOw+lzrMBDmqQB7YYSMPnIZuC9oLYZjMWev+lWNEbe iSldpmqYeJFIrGjnTOaoVdHq/j59h55+HagIWJhzc7fmCABK+XhaEBMFOpAt59DLA6/P BvqSV2Fpp/ykiG6cbhKXXhpLSlPYU7lx5pl6NGg2J4w1PB9bdAslCFNDCQ3YWY+7t5sS o/iHBR0RwAUWpdna6o6DvY3GU4lhJ5pCH6L62kjMlccGTmBywVewtnJPq0TVtR57rW5R tcPNnIkJmt9V5RKIzb6+/fQ0ZMNJAsRuAGHqy10+UccCnHgpEDxovaeb1TT1ugYP2ECB QKKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=1ju+GhZzhBoB1kJ7RgkC8rwgjVZxeqdtnqCvksObqVQ=; b=OBbi8+YIby41G/hbehGRMu/rYBwTc0IgeI2dwjPFREUiLUnQt/kwq3JQ2N1KysWzMt Kblfc+SquynIQQofkjW72yv3oSvDgw+oKzuLK0yyqHFddofbt10zEHBJanB+5BCm/mrI qxl3bTX14FxEU7ghtxuIRdN4aC35GIMn4VT9bgGgIHKSMjfMaxR7SA5QrXB8aNku4sjh Y+FsMbEvL8TI4ZGzCbKJoCcX9Ja6qD7/Rrw0iN88jrzFHO/KQ30TXfy1ln1prp1FsUjH mk8ktXAb2zmWZslX0xJOVAG7RIacfhcG8kKLUlsWYtedI4XZyk/NWihdkNIkSdZioAYI EeJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LZA3o9sQ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 8si3100438edz.299.2019.10.17.22.05.45; Thu, 17 Oct 2019 22:06:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LZA3o9sQ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2407503AbfJPWUf (ORCPT + 99 others); Wed, 16 Oct 2019 18:20:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:42938 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2437587AbfJPVxq (ORCPT ); Wed, 16 Oct 2019 17:53:46 -0400 Received: from localhost (unknown [192.55.54.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AA36F218DE; Wed, 16 Oct 2019 21:53:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1571262825; bh=UlGrKMgXgRaTB19PpiO2d5UObMhWdYR3TmQmAa+QV6Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LZA3o9sQnyAHsXKdp05lLn1zwF3Sos5v2k8fcsq78l8EfePoq+V1+ZeKK8rxrsvU4 qhYdfJXTpXHen0bYGTiPesMBxO/Q7c3kNR2xsVk0XU1fxLax61xPJwe8bb9B/13rwU ECzycDWt8x4cqVbVy2GJztztdNVDukT42NSUpCug= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Pavel Shilovsky , Steve French Subject: [PATCH 4.4 68/79] CIFS: Gracefully handle QueryInfo errors during open Date: Wed, 16 Oct 2019 14:50:43 -0700 Message-Id: <20191016214827.195807586@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191016214729.758892904@linuxfoundation.org> References: <20191016214729.758892904@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Pavel Shilovsky commit 30573a82fb179420b8aac30a3a3595aa96a93156 upstream. Currently if the client identifies problems when processing metadata returned in CREATE response, the open handle is being leaked. This causes multiple problems like a file missing a lease break by that client which causes high latencies to other clients accessing the file. Another side-effect of this is that the file can't be deleted. Fix this by closing the file after the client hits an error after the file was opened and the open descriptor wasn't returned to the user space. Also convert -ESTALE to -EOPENSTALE to allow the VFS to revalidate a dentry and retry the open. Cc: Signed-off-by: Pavel Shilovsky Signed-off-by: Steve French Signed-off-by: Greg Kroah-Hartman --- fs/cifs/file.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -252,6 +252,12 @@ cifs_nt_open(char *full_path, struct ino rc = cifs_get_inode_info(&inode, full_path, buf, inode->i_sb, xid, fid); + if (rc) { + server->ops->close(xid, tcon, fid); + if (rc == -ESTALE) + rc = -EOPENSTALE; + } + out: kfree(buf); return rc;