From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932262AbcA2PTE (ORCPT ); Fri, 29 Jan 2016 10:19:04 -0500 Received: from mga04.intel.com ([192.55.52.120]:40071 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756426AbcA2PTB (ORCPT ); Fri, 29 Jan 2016 10:19:01 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,364,1449561600"; d="scan'208";a="643532330" Subject: [PATCH 0/2] block: fix raw block device dax support From: Dan Williams To: linux-block@vger.kernel.org Cc: linux-nvdimm@ml01.01.org, Dave Chinner , linux-kernel@vger.kernel.org, Christoph Hellwig , axboe@fb.com, Jeff Moyer , Jan Kara , linux-fsdevel@vger.kernel.org, Matthew Wilcox , Andrew Morton , Ross Zwisler Date: Fri, 29 Jan 2016 07:18:35 -0800 Message-ID: <20160129151835.18752.9423.stgit@dwillia2-desk3.amr.corp.intel.com> User-Agent: StGit/0.17.1-9-g687f MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The dax support for a raw block device did not account for page cache entries established by the kernel for partition reads. This breaks dax as it assumes that page cache entries are limited to covering holes in files, or are exceptional entries marking dirty pages. Additionally, the facility to toggle dax at runtime fails to handle evacuating the page cache when switching from non-dax-mode to dax-mode. It needs to be rethought as enabling dax needs to be atomic with flushing the page cache. --- Dan Williams (2): block: revert runtime dax control of the raw block device block: use DAX for partition table reads block/ioctl.c | 38 -------------------------------------- block/partition-generic.c | 18 +++++++++++++++--- fs/block_dev.c | 28 ---------------------------- fs/dax.c | 20 ++++++++++++++++++++ include/linux/blkdev.h | 10 ++++++++++ include/linux/fs.h | 3 --- include/uapi/linux/fs.h | 1 - 7 files changed, 45 insertions(+), 73 deletions(-)