From patchwork Fri Dec 8 17:52:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Coddington X-Patchwork-Id: 10103107 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 E0487605BA for ; Fri, 8 Dec 2017 17:53:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C976028D88 for ; Fri, 8 Dec 2017 17:53:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BB04028DD0; Fri, 8 Dec 2017 17:53:03 +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.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI 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 7085228E23 for ; Fri, 8 Dec 2017 17:53:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753080AbdLHRxC (ORCPT ); Fri, 8 Dec 2017 12:53:02 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38480 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753091AbdLHRxA (ORCPT ); Fri, 8 Dec 2017 12:53:00 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6E27C2DD78E; Fri, 8 Dec 2017 17:53:00 +0000 (UTC) Received: from bcodding.csb (ovpn-121-175.rdu2.redhat.com [10.10.121.175]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2DF6E5D9CD; Fri, 8 Dec 2017 17:53:00 +0000 (UTC) Received: by bcodding.csb (Postfix, from userid 24008) id A403210C3114; Fri, 8 Dec 2017 12:52:59 -0500 (EST) From: Benjamin Coddington To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org Subject: [PATCH v1 2/3] pnfs/blocklayout: Revalidate SCSI disks after registration Date: Fri, 8 Dec 2017 12:52:58 -0500 Message-Id: <7849a32ce8d429791eed114275496ec213dfaeb7.1512748321.git.bcodding@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 08 Dec 2017 17:53:00 +0000 (UTC) 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 If a SCSI device already has an exclusive access registrants only reservation, the device's size cannot be known by the client until after registration. We should therefore delay setting the block device's length until after the registration and revalidation of the disk. Signed-off-by: Benjamin Coddington --- fs/nfs/blocklayout/dev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fs/nfs/blocklayout/dev.c b/fs/nfs/blocklayout/dev.c index a69ef4e9c24c..4d319098f83b 100644 --- a/fs/nfs/blocklayout/dev.c +++ b/fs/nfs/blocklayout/dev.c @@ -366,7 +366,6 @@ bl_parse_scsi(struct nfs_server *server, struct pnfs_block_dev *d, return PTR_ERR(bdev); d->bdev = bdev; - d->len = i_size_read(d->bdev->bd_inode); d->map = bl_map_simple; d->pr_key = v->scsi.pr_key; @@ -388,6 +387,13 @@ bl_parse_scsi(struct nfs_server *server, struct pnfs_block_dev *d, goto out_blkdev_put; } + error = revalidate_disk(d->bdev->bd_disk); + if (error) { + pr_err("pNFS: failed to revalidate block device %s.", + d->bdev->bd_disk->disk_name); + goto out_blkdev_put; + } + d->len = i_size_read(d->bdev->bd_inode); d->pr_registered = true; return 0;