Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp1412182ybp; Thu, 17 Oct 2019 12:24:01 -0700 (PDT) X-Google-Smtp-Source: APXvYqxuKBz8wUKW8pwqdIHWI1u3onbynzQGar3c1JagUunrMs3FfaVFAdA6PbbAHuCJoMq54DTB X-Received: by 2002:a05:6402:28f:: with SMTP id l15mr5707022edv.90.1571340241826; Thu, 17 Oct 2019 12:24:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571340241; cv=none; d=google.com; s=arc-20160816; b=NNVAoBZWMquChbwtr8oHIaH2UjaeQWyAT/rMZPfFYz4ORUnG3khOfXyAZBh71B3/S+ FNL6PL3YqJJfZ7Rnt8yD2TbsbHE/T0avn66dya88Hwb/0DLZSMyret5PDFuO3canioXm udY6ItcEjqjYeHV/5+eTTocHEC3CTgFb11C32T/4rWk/w4aLwZehDDBfbqDWcRO2w0dG MqW2E9mVF5nXvFXx1c+2+1octT8721e9WWHV357Mivzw4cUuJ7fURlcTxpU+bya5WtMT dlu81bRLUXhHrDsUtNmM1LDQscXTlaI07p0SPEPVXRGPaBpUDvo5fi/6vut75akS0S3S hhLw== 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=pZmO2pRwKMnxspVbBHdMWZY7lPeE0HT5OC5+22yH7Ik++twyUMavcuS5FlraElBVA7 0uqH46jX21J9xDsWzEe/0U8dLVfXw9reIwerQDO/CzMpb7lHUME0KbrKQtNq2etM9a3H nOFakQLSvb89PE4H8f6q2LJvEEPH6xDQFVLoKB0VP//JYu+gVhixx8jsCqJhXZUgNaoX iPECLI+aeILoBZm3aHzoU5q9E1zXiYmnEn016nMN5ouArdhSbxw7NGJnrfHjnVwu2QMV vqWG99i4HEqw6LhkKRC9ByoYabiNIKQI+mJIDBvGunemfAuyiMsRdAjSIYpqULlgJxxy JloA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Iiny3qNw; 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 g13si1967939ejf.133.2019.10.17.12.23.38; Thu, 17 Oct 2019 12:24:01 -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=Iiny3qNw; 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 S2390130AbfJPWP4 (ORCPT + 99 others); Wed, 16 Oct 2019 18:15:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:45916 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2437764AbfJPVzT (ORCPT ); Wed, 16 Oct 2019 17:55:19 -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 0B50221925; Wed, 16 Oct 2019 21:55:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1571262919; bh=UlGrKMgXgRaTB19PpiO2d5UObMhWdYR3TmQmAa+QV6Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Iiny3qNw6RkHDUAA2bhOqyqfBYvRBSeLowPtTHCLzKwPQV8V0tEOdG3QMHsL0XZP9 tDYEuxUe45oUeWBe4fnsvTQj6XaCjs/Mcj7QjU288oFA910qdScykjv55MPPrW6LmF YKskHLKby2v2w+yHLzuTHItA4C4ZwR8wbmiWJv1s= 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.9 79/92] CIFS: Gracefully handle QueryInfo errors during open Date: Wed, 16 Oct 2019 14:50:52 -0700 Message-Id: <20191016214846.622390456@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191016214759.600329427@linuxfoundation.org> References: <20191016214759.600329427@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;