Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp15494imm; Fri, 25 May 2018 15:03:20 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpfn+Mv98jq5kYy2ADFQa8vl7qzkiWHkgMvmXnNzuwzNjRSqY+8/bmVmXKGbezdEaX66qYf X-Received: by 2002:a63:a84f:: with SMTP id i15-v6mr3331161pgp.367.1527285800239; Fri, 25 May 2018 15:03:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527285800; cv=none; d=google.com; s=arc-20160816; b=X67jf57JrXEqE/wiJwvUTfKn6yySj55Rgo99tiipbIoep2Yn8jSw9K/kbuk82ZBDr6 WisNzbAQdtpqdk5UwaqAN3TO2fmZZvf9tqHMyaraaFiEz9grnBnzy/c7RVAWS7yuEsoz nF7SOwO1zWQEaWXWpuAEF9CY3kLJgFRTeoCVyUazVNONe6Z7lQqK9SGl2c9Y5ALPiNoZ HkGx8iNpgr/IXf1bKERSRPZ6fMrm+YH7X5afOjlLU64vXokoTn+UIOnlZpXYl7tzbtfq E4KSjnBCpvNSGIMqyRv0JvTcAJqfHrpuTnFBJVEp0PGYGVIvu2ew9u49ujLlDfQqXqXd Ulpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=qanCpA1+QGOhGOLfejPz5Yt/nZHp0tyw8ZpeO66SuW8=; b=rorfP6AnuXCUnnZwo8/Goeew29fIvWt0ouJTxIzBWTdrgcvoEfAWW9jw55DrjmX8Rd 1xseW9uaWtmtTdzn+PB02FUDgPGrIMqq74+nWnCejGKGsmGH+xP/zAfsxFqxHyjWeaBR LeGZkozRnWBij5YIx/cyub+Z6UdmiIO7tD+YzwofaWo1NYnCqGcLXpryWLtDNHw38E1V RQ5GLQK6SFdoNqXIPGI3wsh8Cyi8cIPe6csAba72W/upUY/TLphfvCkuJEDcRFsautEX qWrpAVjp4A8O6r8C2+0/xNJB+m2TKyCvL1RZYvOr85MB9h5vccHpva2s0lQIYTCW3OiE adCw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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. [209.132.180.67]) by mx.google.com with ESMTP id o5-v6si23978764plh.556.2018.05.25.15.03.05; Fri, 25 May 2018 15:03:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 S1030633AbeEYWBE (ORCPT + 99 others); Fri, 25 May 2018 18:01:04 -0400 Received: from mga18.intel.com ([134.134.136.126]:17942 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030550AbeEYWBC (ORCPT ); Fri, 25 May 2018 18:01:02 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 May 2018 15:01:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,441,1520924400"; d="scan'208";a="231900882" Received: from theros.lm.intel.com ([10.232.112.164]) by fmsmga006.fm.intel.com with ESMTP; 25 May 2018 15:01:00 -0700 From: Ross Zwisler To: Toshi Kani , Mike Snitzer , dm-devel@redhat.com Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvdimm@lists.01.org, Ross Zwisler , linux-xfs@vger.kernel.org Subject: [PATCH resend 3/7] dm: fix test for DAX device support Date: Fri, 25 May 2018 16:00:51 -0600 Message-Id: <20180525220055.18920-4-ross.zwisler@linux.intel.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180525220055.18920-1-ross.zwisler@linux.intel.com> References: <20180525220055.18920-1-ross.zwisler@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently device_supports_dax() just checks to see if the QUEUE_FLAG_DAX flag is set on the device's request queue to decide whether or not the device supports filesystem DAX. This is insufficient because there are devices like PMEM namespaces in raw mode which have QUEUE_FLAG_DAX set but which don't actually support DAX. This means that you could create a dm-linear device, for example, where the first part of the dm-linear device was a PMEM namespace in fsdax mode and the second part was a PMEM namespace in raw mode. Both DM and the filesystem you put on that dm-linear device would think the whole device supports DAX, which would lead to bad behavior once your raw PMEM namespace part using DAX needed struct page for something. Fix this by using bdev_dax_supported() like filesystems do at mount time. This checks for raw mode and also performs other tests like checking to make sure the dax_direct_access() path works. Signed-off-by: Ross Zwisler Fixes: commit 545ed20e6df6 ("dm: add infrastructure for DAX support") --- drivers/md/dm-table.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index 0589a4da12bb..5bb994b012ca 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -885,9 +885,7 @@ EXPORT_SYMBOL_GPL(dm_table_set_type); static int device_supports_dax(struct dm_target *ti, struct dm_dev *dev, sector_t start, sector_t len, void *data) { - struct request_queue *q = bdev_get_queue(dev->bdev); - - return q && blk_queue_dax(q); + return bdev_dax_supported(dev->bdev, PAGE_SIZE); } static bool dm_table_supports_dax(struct dm_table *t) -- 2.14.3