From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1424752AbcFMWb7 (ORCPT ); Mon, 13 Jun 2016 18:31:59 -0400 Received: from g4t3425.houston.hpe.com ([15.241.140.78]:30087 "EHLO g4t3425.houston.hpe.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1424693AbcFMWb5 (ORCPT ); Mon, 13 Jun 2016 18:31:57 -0400 From: Toshi Kani To: agk@redhat.com, snitzer@redhat.com, dan.j.williams@intel.com Cc: ross.zwisler@linux.intel.com, viro@zeniv.linux.org.uk, axboe@kernel.dk, toshi.kani@hpe.com, linux-nvdimm@ml01.01.org, dm-devel@redhat.com, linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/6] dm, dm-linear: Add dax_supported to dm_target Date: Mon, 13 Jun 2016 16:21:36 -0600 Message-Id: <1465856497-19698-6-git-send-email-toshi.kani@hpe.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1465856497-19698-1-git-send-email-toshi.kani@hpe.com> References: <1465856497-19698-1-git-send-email-toshi.kani@hpe.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Extend 'struct dm_target' to have dax_supported bit, which allows dm-table to check if a dm-target supports DAX. Change dm-linear to set this bit when its target physical device supports DAX. Signed-off-by: Toshi Kani Cc: Alasdair Kergon Cc: Mike Snitzer Cc: Dan Williams Cc: Ross Zwisler --- drivers/md/dm-linear.c | 2 ++ include/linux/device-mapper.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/drivers/md/dm-linear.c b/drivers/md/dm-linear.c index 49bd7d2..6fdbbc8 100644 --- a/drivers/md/dm-linear.c +++ b/drivers/md/dm-linear.c @@ -59,6 +59,8 @@ static int linear_ctr(struct dm_target *ti, unsigned int argc, char **argv) ti->num_flush_bios = 1; ti->num_discard_bios = 1; ti->num_write_same_bios = 1; + if (lc->dev->bdev->bd_disk->flags & GENHD_FL_DAX) + ti->dax_supported = 1; ti->private = lc; return 0; diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 16e6c8c..9b72989 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h @@ -290,6 +290,11 @@ struct dm_target { * Set if this target does not return zeroes on discarded blocks. */ bool discard_zeroes_data_unsupported:1; + + /* + * Set if the target supports DAX (direct access). + */ + bool dax_supported:1; }; /* Each target can link one of these into the table */