Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp2158967ybm; Thu, 23 May 2019 12:19:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqxBiyg9twMk+Eqnh0HbW/JCzYhrRmOL/6KB0mZybryIGekhGWb/RINkov4/xKfhnIU2jJf1 X-Received: by 2002:a63:2b92:: with SMTP id r140mr12615914pgr.363.1558639164858; Thu, 23 May 2019 12:19:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558639164; cv=none; d=google.com; s=arc-20160816; b=KPBpP4P1PUbdkckNzZf3MlNGPfO2PLu/O7K82N0MS/mJCuF6KxblWWckWsbsJs6EF3 1t02RdrfUzeOdFhJQ/y5q6A7tij5MduGz8luICDfZIkOqnZd40jwPGO9NtskQubxQ//j B0nJ7sMQVGbJL01b4Q4nIIKTOZYB7Hquq9s6L2JtFjtoMYU7BK2j9LEUbv0L/C2WdDky PEoOmBROrtOktPmfKJ/PZ0vGoItVFhiIAbI9RMYJAdH5hpJvM07NFTGu1A5e29g7FMiM vNWmfp/XUtB2FtFL+KAgMQ+j9wwGlLEcfJdVRmFas0gL+xI7Ndt9ZdZ6BKh3UigR/4mn NTlQ== 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=4nNt5YTy8D1beysNpxYTJakOf0DY0O6MBln+V7Vs7xs=; b=MsgrhqRQOQGm0ZpsAErKsEtUa56Ooor8YM0LAApv2UeUn3Ahcvdo4nreNre/aekE4g t4qGu41JoU4O/5YoGkGEaenMh3tBa4Gp9dKiXLnXaNPdAXT3tT3TYt+bjEPGsVqFPRwd mmPB0VFesHbdWArqBz9qjXk+Zl4msGQ8VUE7zljOCxodJhQ4N71CgiqdS8JsaG4R2xHf BnFpE10m376M8fIQcUoHsMBxrKM6doIBFcoeninWfDdN0cb9dcRnJaPdzaiKwZ86Y6GJ 63Q6LCyrtXWwlYdlFnBGElxOSVC/cLAi0GXPsOFD02l2g8jrfmOua638Rq18bt9jHT1J 2mLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=vMFNak5Z; 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 3si496283plh.153.2019.05.23.12.19.09; Thu, 23 May 2019 12:19:24 -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=vMFNak5Z; 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 S2388791AbfEWTQ2 (ORCPT + 99 others); Thu, 23 May 2019 15:16:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:51118 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389191AbfEWTQ1 (ORCPT ); Thu, 23 May 2019 15:16:27 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 2FC292133D; Thu, 23 May 2019 19:16:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558638986; bh=MW32hsEj+bBsxFl2lvUcnJoAOxMKjk7PbtOnPJNOI0M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vMFNak5ZMzenS5Zt7t1mHI+r6zh5sHosz9s3Md1XoRNzKRWNW3qNN9HuX5aJmnFaA UKW95wzJa6Yyv1ftQDxyw0yulvDXCwvBVcIhc4GgakvWys8ZJraV5eiU2ZJK9HYBGB rBc8/uOoFvBrt0whQ7QSfqi4ZxFxB1GONkKbf6yU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, ZhangXiaoxu , Anna Schumaker Subject: [PATCH 4.19 037/114] NFS4: Fix v4.0 client state corruption when mount Date: Thu, 23 May 2019 21:05:36 +0200 Message-Id: <20190523181735.144281654@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190523181731.372074275@linuxfoundation.org> References: <20190523181731.372074275@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: ZhangXiaoxu commit f02f3755dbd14fb935d24b14650fff9ba92243b8 upstream. stat command with soft mount never return after server is stopped. When alloc a new client, the state of the client will be set to NFS4CLNT_LEASE_EXPIRED. When the server is stopped, the state manager will work, and accord the state to recover. But the state is NFS4CLNT_LEASE_EXPIRED, it will drain the slot table and lead other task to wait queue, until the client recovered. Then the stat command is hung. When discover server trunking, the client will renew the lease, but check the client state, it lead the client state corruption. So, we need to call state manager to recover it when detect server ip trunking. Signed-off-by: ZhangXiaoxu Cc: stable@vger.kernel.org Signed-off-by: Anna Schumaker Signed-off-by: Greg Kroah-Hartman --- fs/nfs/nfs4state.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -159,6 +159,10 @@ int nfs40_discover_server_trunking(struc /* Sustain the lease, even if it's empty. If the clientid4 * goes stale it's of no use for trunking discovery. */ nfs4_schedule_state_renewal(*result); + + /* If the client state need to recover, do it. */ + if (clp->cl_state) + nfs4_schedule_state_manager(clp); } out: return status;