Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp959045pxb; Wed, 27 Oct 2021 16:07:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyyTnVFlteLhg3BaQiOc78ZVTP8POuGMqcxndOL8dwP91bos0PsD8pGhybcK5WyOc3AW4gJ X-Received: by 2002:a05:6402:2787:: with SMTP id b7mr1106512ede.230.1635376069698; Wed, 27 Oct 2021 16:07:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635376069; cv=none; d=google.com; s=arc-20160816; b=pcNR+MSVc78dWUL/O5YRHiuTbArm51F6xv491qBtUH+r8Z4kYgdR0jBkkcQ0OQbXYR 6X6aNLCbI6o/d0O2cq0UdhSM79uk6jbmJAuxA8Q+6FLxKwvadkns7lp/0GjxfTcSCOp0 IHn47ialHvghUXMkaISE3ebzrMvIQYGqPt0J+p4ks5L2P++qLH6kJ8BSX0WVGH3kYgJ+ ui5xUwadSFrhZpfCEawByVw+FXVznZpIMS2CAmM6UUHqJJPcSoTmFQ8OLScYr+43NmhX wdyW0DSOSkojs75lfrXDwAziwouxTyrZND1vC5vzPon2TogqNpE3Vm3x+I9DNBFy/MLV srYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=3af0vrDw+XvQKylIm0LDLH9D6xoJ74LhsidYuXkOM7g=; b=eLw2vewVJr589gRrh7aSOqrA44n0Uh4tk/eEdEj/4MzUp0gEHUkdVcAyyE6QYR/E81 avyMsvFzUbkiueZEDagpXPk1j4Bwip31T1JWuH4dc5ErQCm/Gj3X8Wx/YzjS52cbRb0H usdyJg8OfEqKDe4oKnv5sIRdqMcfDbsMS4k8FtVlC98FydtmlNGM74v95dQ3saTmb+t+ DEMQkP9BF3iXWTDUteJ1IABHC50nLBkDHV3giEb6FhNEhPi6whM6czCfrolJ45A9/XW5 9vXp4pCmSM0gT+8zgQDz7oAYWZmqqhsKI+ij4MRf7wY8J2C70jkvHaWlQ6A0mgJO84S0 3NXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20210112.gappssmtp.com header.s=20210112 header.b=d6phRBLS; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y8si1322506ede.226.2021.10.27.16.07.25; Wed, 27 Oct 2021 16:07:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel-com.20210112.gappssmtp.com header.s=20210112 header.b=d6phRBLS; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230201AbhJ0XJp (ORCPT + 99 others); Wed, 27 Oct 2021 19:09:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230196AbhJ0XJo (ORCPT ); Wed, 27 Oct 2021 19:09:44 -0400 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 090EEC0613B9 for ; Wed, 27 Oct 2021 16:07:18 -0700 (PDT) Received: by mail-pj1-x102a.google.com with SMTP id in13so874591pjb.1 for ; Wed, 27 Oct 2021 16:07:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3af0vrDw+XvQKylIm0LDLH9D6xoJ74LhsidYuXkOM7g=; b=d6phRBLSNqEavLbFGa7qsltfCwCXOIkQGNewJdYfiMwINhHDbJ+v3Tvr+m7SXCKglh f1Y9JyoYsY7pru2o0qaf9ZrRobsN47Jue96kM8PwOADE6VAIkbXtDJTZy+mzrce1H5ii TDWfFC/E9fe8cXOG72hb4HndsLJ5qovtA1WXr8x1UXXNXsg6OU7/y9sWKZsB9Ro8FzaF 3kotXlCmovzhrPQGnkvqh1aQ4+kBEwqSKMSlKnEz5Ahj4QsLMDMTI4jX5+IsmEJsZDOu D4ACx/M3ONMf14xOrt8n/jVyvHMKdyB04vPcp4aB9RBAawLg1e2wm7UXNUEREJEycjA9 pSnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3af0vrDw+XvQKylIm0LDLH9D6xoJ74LhsidYuXkOM7g=; b=SCuw1BU2Jatxev/puwnYGa3MRx0Et8ng9nVHVFc0yz2hevzXWBfclkplBePF2n16YJ 7WWsVUCDgtKSPA+Q2eOa/7KCGiOi/GITveAj4rRL0E3NZiAwIPWSPgQUF0I+kibUrI5R UlhPwtzkS7v5qM8JAuzJKrtlg/0tfmGAouXhYRg5Ou8ldxreGHwjcb5+XP1YYmRZHFrn d9TMgMjVqYYYo2xl7irexrVHoIYpU/N/Bx2LfU26PtMkJ9Qd/8sXI1+2fAPR6bAiKUmM tb1sHvXu1xoBNxVL0KfgFhYdC6YLfjvBM8cssl08jKGcvovGPYKBYjpNl24qf2FZh5rW OVqA== X-Gm-Message-State: AOAM531bgeK1KDIGxDR70zwHk3/iXNw7sCD6ErObjv/pugr2T5jIIbx2 GLDc0XMwMKkW8i4HUi+gX1rDsn9piLZoD18v8kyAcg== X-Received: by 2002:a17:90b:350f:: with SMTP id ls15mr618659pjb.220.1635376038542; Wed, 27 Oct 2021 16:07:18 -0700 (PDT) MIME-Version: 1.0 References: <20211018044054.1779424-1-hch@lst.de> <20211018044054.1779424-6-hch@lst.de> In-Reply-To: <20211018044054.1779424-6-hch@lst.de> From: Dan Williams Date: Wed, 27 Oct 2021 16:07:07 -0700 Message-ID: Subject: Re: [PATCH 05/11] dax: move the partition alignment check into fs_dax_get_by_bdev To: Christoph Hellwig Cc: Mike Snitzer , Ira Weiny , device-mapper development , linux-xfs , Linux NVDIMM , linux-s390 , linux-fsdevel , linux-erofs@lists.ozlabs.org, linux-ext4 , virtualization@lists.linux-foundation.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org On Sun, Oct 17, 2021 at 9:41 PM Christoph Hellwig wrote: > > fs_dax_get_by_bdev is the primary interface to find a dax device for a > block device, so move the partition alignment check there instead of > wiring it up through ->dax_supported. Looks good. > > Signed-off-by: Christoph Hellwig > --- > drivers/dax/super.c | 23 ++++++----------------- > 1 file changed, 6 insertions(+), 17 deletions(-) > > diff --git a/drivers/dax/super.c b/drivers/dax/super.c > index 04fc680542e8d..482fe775324a4 100644 > --- a/drivers/dax/super.c > +++ b/drivers/dax/super.c > @@ -93,6 +93,12 @@ struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev) > if (!blk_queue_dax(bdev->bd_disk->queue)) > return NULL; > > + if ((get_start_sect(bdev) * SECTOR_SIZE) % PAGE_SIZE || > + (bdev_nr_sectors(bdev) * SECTOR_SIZE) % PAGE_SIZE) { > + pr_info("%pg: error: unaligned partition for dax\n", bdev); > + return NULL; > + } > + > id = dax_read_lock(); > dax_dev = xa_load(&dax_hosts, (unsigned long)bdev->bd_disk); > if (!dax_dev || !dax_alive(dax_dev) || !igrab(&dax_dev->inode)) > @@ -107,10 +113,6 @@ bool generic_fsdax_supported(struct dax_device *dax_dev, > struct block_device *bdev, int blocksize, sector_t start, > sector_t sectors) > { > - pgoff_t pgoff, pgoff_end; > - sector_t last_page; > - int err; > - > if (blocksize != PAGE_SIZE) { > pr_info("%pg: error: unsupported blocksize for dax\n", bdev); > return false; > @@ -121,19 +123,6 @@ bool generic_fsdax_supported(struct dax_device *dax_dev, > return false; > } > > - err = bdev_dax_pgoff(bdev, start, PAGE_SIZE, &pgoff); > - if (err) { > - pr_info("%pg: error: unaligned partition for dax\n", bdev); > - return false; > - } > - > - last_page = PFN_DOWN((start + sectors - 1) * 512) * PAGE_SIZE / 512; > - err = bdev_dax_pgoff(bdev, last_page, PAGE_SIZE, &pgoff_end); > - if (err) { > - pr_info("%pg: error: unaligned partition for dax\n", bdev); > - return false; > - } > - > return true; > } > EXPORT_SYMBOL_GPL(generic_fsdax_supported); > -- > 2.30.2 >