From patchwork Tue Aug 23 15:39:33 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 9295881 X-Patchwork-Delegate: Trond.Myklebust@netapp.com 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 A5E6360574 for ; Tue, 23 Aug 2016 15:41:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9709628CAB for ; Tue, 23 Aug 2016 15:41:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8BA8B28CB7; Tue, 23 Aug 2016 15:41:02 +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.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,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 18B3E28CAB for ; Tue, 23 Aug 2016 15:41:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932268AbcHWPkc (ORCPT ); Tue, 23 Aug 2016 11:40:32 -0400 Received: from mail-it0-f65.google.com ([209.85.214.65]:34189 "EHLO mail-it0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754476AbcHWPkR (ORCPT ); Tue, 23 Aug 2016 11:40:17 -0400 Received: by mail-it0-f65.google.com with SMTP id e63so8426956ith.1 for ; Tue, 23 Aug 2016 08:40:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:date:message-id; bh=cQpLggLyEWoVenfU8d8bCqs2mc7zs4NKAbpfRdqPw70=; b=1AgiTpdI4H4xT2/kMRrec/azXFunP1IkJjyaVfWoBrCskeyIAFGqjVx2bu+P8XiDEJ n8ig6DwHTrBq8ktSEfcmDiqsVGpTRMqXW+D6ZXkm9VVzwpou9bLcK4G2q7LtyiwWLaq5 VcV4Y41fOZzchYeIXfivPs6eQ6MxOycrFzJ92wHbh6XaWw5J3AFbDwT/sc8jYlKe/QRP bWzabYRiqp5PHSXvyJ3Dyz/Ew2MYsOCxVKTyQ6tcnOqtHY2VCwKZd+CRvxkMwm1h+Cv2 ucmhnEMqla426SiKJiIQS+oHdBWn2MpPdZ4JKwldpvx8y2yTCn5E/SS1CL9ZtKrdv0KQ XeZw== 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:subject:date:message-id; bh=cQpLggLyEWoVenfU8d8bCqs2mc7zs4NKAbpfRdqPw70=; b=FhbDp3qnhCtM1plAHx7xulZ+Oql58t69AWdNfWQUGZB0wD89xMKz/9xNPdwkQLqRJq LT3yBZIB9zqTi1Oe94fvUrnMvnqhRM/U3YU9NP37d6+zwsYNzyrS8dxwhzyz+uj18srQ GCjv9djdVMavF/jiFq2n1IVqvirSX7czYYNqioi8FdPqpexuu9ciTrBS8X0w9YLVMxkP wTITRmUzM6hS4c8Mwy2teMIF5/6iuSb7rZ7tSKbtr0xK01gKpd1vGVH/Xvi0MfrWpFFn z/+lWqoAcOCroRy1R9X4CJffXzoM9+h1Tbs6iYYWg5s3piSEYn+RN50Rh6OY0jJr/MZG 8Lig== X-Gm-Message-State: AEkoouvkLolQJKCxCebUJ+jGpRInd1/LmkgusBrANfVzoPYEfPQ+4JQ4VBScd2Lb9EwbYQ== X-Received: by 10.107.17.147 with SMTP id 19mr34480772ior.22.1471966816317; Tue, 23 Aug 2016 08:40:16 -0700 (PDT) Received: from leira.trondhjem.org.localdomain (50-108-86-94.adr01.mskg.mi.frontiernet.net. [50.108.86.94]) by smtp.gmail.com with ESMTPSA id i4sm1313521itf.0.2016.08.23.08.40.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Aug 2016 08:40:15 -0700 (PDT) From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH] pNFS: The client must not do I/O to the DS if it's lease has expired Date: Tue, 23 Aug 2016 11:39:33 -0400 Message-Id: <1471966773-10022-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 Ensure that the client conforms to the normative behaviour described in RFC5661 Section 12.7.2: "If a client believes its lease has expired, it MUST NOT send I/O to the storage device until it has validated its lease." So ensure that we wait for the lease to be validated before using the layout. Signed-off-by: Trond Myklebust Cc: stable@vger.kernel.org # v3.20+ --- fs/nfs/pnfs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index bf98f1b2595f..6daf034645c8 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -1555,6 +1555,7 @@ pnfs_update_layout(struct inode *ino, } lookup_again: + nfs4_client_recover_expired_lease(clp); first = false; spin_lock(&ino->i_lock); lo = pnfs_find_alloc_layout(ino, ctx, gfp_flags);