From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from szxga02-in.huawei.com ([119.145.14.65]:10753 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753221AbbJUIKk (ORCPT ); Wed, 21 Oct 2015 04:10:40 -0400 Subject: Re: [PATCH 3.4 17/65] fixing infinite OPEN loop in 4.0 stateid recovery To: "Kornievskaia, Olga" , "lizf@kernel.org" References: <1445302030-4607-1-git-send-email-lizf@kernel.org> <1445302095-4695-17-git-send-email-lizf@kernel.org> <3B7DC48D-0D7F-4F9A-9CE0-FAC640F60199@netapp.com> CC: "stable@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "Trond Myklebust" From: Zefan Li Message-ID: <562746FA.2070009@huawei.com> Date: Wed, 21 Oct 2015 16:04:10 +0800 MIME-Version: 1.0 In-Reply-To: <3B7DC48D-0D7F-4F9A-9CE0-FAC640F60199@netapp.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: On 2015/10/20 21:25, Kornievskaia, Olga wrote: > That patch introduced a different problem that was fixed by commit a41cbe86df3afbc82311a1640e20858c0cd7e065 I'll queue it up for 3.4.y. Thanks! > (NFS4CLNT_RECLAIM_NOGRACE was suppose to be NFS_STATE_RECLAIM_NOGRACE) > > Re: Failing to send a CLOSE if file is opened WRONLY and ... > > >> On Oct 19, 2015, at 8:47 PM, lizf@kernel.org wrote: >> >> From: Olga Kornievskaia > >> >> 3.4.110-rc1 review patch. If anyone has any objections, please let me know. >> >> ------------------ >> >> >> commit e8d975e73e5fa05f983fbf2723120edcf68e0b38 upstream. >> >> Problem: When an operation like WRITE receives a BAD_STATEID, even though >> recovery code clears the RECLAIM_NOGRACE recovery flag before recovering >> the open state, because of clearing delegation state for the associated >> inode, nfs_inode_find_state_and_recover() gets called and it makes the >> same state with RECLAIM_NOGRACE flag again. As a results, when we restart >> looking over the open states, we end up in the infinite loop instead of >> breaking out in the next test of state flags. >> >> Solution: unset the RECLAIM_NOGRACE set because of >> calling of nfs_inode_find_state_and_recover() after returning from calling >> recover_open() function. >> >> Signed-off-by: Olga Kornievskaia > >> Signed-off-by: Trond Myklebust > >> [lizf: Backported to 3.4: adjust context] >> Signed-off-by: Zefan Li >