From patchwork Thu Nov 10 21:06:28 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 9422071 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 452B360512 for ; Thu, 10 Nov 2016 21:06:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3D1F4297DE for ; Thu, 10 Nov 2016 21:06:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 30D4A29848; Thu, 10 Nov 2016 21:06:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9469B297DE for ; Thu, 10 Nov 2016 21:06:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935187AbcKJVGc (ORCPT ); Thu, 10 Nov 2016 16:06:32 -0500 Received: from mail-it0-f67.google.com ([209.85.214.67]:35800 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934428AbcKJVGb (ORCPT ); Thu, 10 Nov 2016 16:06:31 -0500 Received: by mail-it0-f67.google.com with SMTP id b123so6071577itb.2 for ; Thu, 10 Nov 2016 13:06:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id; bh=ILSzE7XXVLYYMMwbzWM0jvveI1tobbN/XppPgyo1jKE=; b=RHvrWUS9j7f5iNAKcckhm6uFUdXm5qrLvgdxKKMYbNUrGms/jmOSlwv0eeleKFdCRJ XtXbus5BrYlYsQ/EIQoxAxku64OWaVRERSyK5Uyx9tGYt34N67ioU1hNcIPEzrd5cpEP 5G1wfdQBWr/9WsptiWVk+jLxcdHGo936G71oDRNg9i5Qjt2Cu7cd/G6ak00sfH8iinwU RrKcHoFIHcFc/SYjAmxDqjC8DFIGwEPeIVahO8Pi7xVF4W0L1fCmSy7u1vcmE5afjiWP gOBAj5+DWt/84FKqjrS7ycc79YHKuHidwDhzaAEtkiJVOCzBe+spoXjj16sbZ/iWqyHU ZhZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=ILSzE7XXVLYYMMwbzWM0jvveI1tobbN/XppPgyo1jKE=; b=T+APsI2chGFrq9PYBmqzPdm8DDSVdVHRQxK+yqzlzUCg8FH+0hv6ZtDbsjDrclrxWa OIvP2rwZCWAt/DMOAxamy0Xu3jtNpUCcFYxZSfAicGlJYZKNB7r+R442zUl3F2WfRbCv 0kU8M5mhVcWihg7twJ5G2BzFtUyZjN2nOYZwdB11rmkXjXuJkxx0fapKysIjFavFkaLO vQVuQC7gHT3GkON8DHjs0ChtzVGK59cWZd4m0btWXiox0W9qEoF+m0j6QyaoZTKtXmGm oOk/Ol6k08qibgPTWrdK9khVlWBzmlU83WXZFT5GwLdgM1V5RtfCkkyFnEyxSA8bYVyp qc8Q== X-Gm-Message-State: ABUngvdU1L0IIlFYteocNiOx0+J0nAj2e/6RnLfmVZu1WnKh3nM+pvumPuCj7XPyIOfbdw== X-Received: by 10.36.208.209 with SMTP id m200mr18705137itg.49.1478811990729; Thu, 10 Nov 2016 13:06:30 -0800 (PST) Received: from leira.trondhjem.org.localdomain (c-68-49-162-121.hsd1.mi.comcast.net. [68.49.162.121]) by smtp.gmail.com with ESMTPSA id l3sm10450498iti.3.2016.11.10.13.06.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 10 Nov 2016 13:06:29 -0800 (PST) From: Trond Myklebust To: Anna Schumaker Cc: Benjamin Coddington , linux-nfs@vger.kernel.org Subject: [PATCH] NFSv4.1: Fix a regression in DELEGRETURN Date: Thu, 10 Nov 2016 16:06:28 -0500 Message-Id: <1478811988-16627-1-git-send-email-trond.myklebust@primarydata.com> X-Mailer: git-send-email 2.7.4 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP We don't want to call nfs4_free_revoked_stateid() in the case where the delegreturn was successful. Reported-by: Benjamin Coddington Signed-off-by: Trond Myklebust --- fs/nfs/nfs4proc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 7897826d7c51..6a1d650e0419 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -5569,6 +5569,7 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) switch (task->tk_status) { case 0: renew_lease(data->res.server, data->timestamp); + break; case -NFS4ERR_ADMIN_REVOKED: case -NFS4ERR_DELEG_REVOKED: case -NFS4ERR_EXPIRED: @@ -5579,8 +5580,6 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) case -NFS4ERR_OLD_STATEID: case -NFS4ERR_STALE_STATEID: task->tk_status = 0; - if (data->roc) - pnfs_roc_set_barrier(data->inode, data->roc_barrier); break; default: if (nfs4_async_handle_error(task, data->res.server, @@ -5590,6 +5589,8 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) } } data->rpc_status = task->tk_status; + if (data->roc && data->rpc_status == 0) + pnfs_roc_set_barrier(data->inode, data->roc_barrier); } static void nfs4_delegreturn_release(void *calldata)