From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966817AbcLVVTI (ORCPT ); Thu, 22 Dec 2016 16:19:08 -0500 Received: from mga03.intel.com ([134.134.136.65]:2589 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758530AbcLVVTH (ORCPT ); Thu, 22 Dec 2016 16:19:07 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,390,1477983600"; d="scan'208";a="1075369255" From: Ross Zwisler To: linux-kernel@vger.kernel.org Cc: Ross Zwisler , Alexander Viro , Andrew Morton , Arnd Bergmann , Christoph Hellwig , Dan Williams , Dave Chinner , Dave Hansen , Jan Kara , Matthew Wilcox , linux-arch@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-nvdimm@ml01.01.org Subject: [PATCH v2 0/4] Write protect DAX PMDs in *sync path Date: Thu, 22 Dec 2016 14:18:52 -0700 Message-Id: <1482441536-14550-1-git-send-email-ross.zwisler@linux.intel.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently dax_mapping_entry_mkclean() fails to clean and write protect the pmd_t of a DAX PMD entry during an *sync operation. This can result in data loss, as detailed in patch 4. You can find a working tree here: https://git.kernel.org/cgit/linux/kernel/git/zwisler/linux.git/log/?h=dax_pmd_clean_v2 This series applies cleanly to mmotm-2016-12-19-16-31. Changes since v1: - Included Dan's patch to kill DAX support for UML. - Instead of wrapping the DAX PMD code in dax_mapping_entry_mkclean() in an #ifdef, we now create a stub for pmdp_huge_clear_flush() for the case when CONFIG_TRANSPARENT_HUGEPAGE isn't defined. (Dan & Jan) Dan Williams (1): dax: kill uml support Ross Zwisler (3): dax: add stub for pmdp_huge_clear_flush() mm: add follow_pte_pmd() dax: wrprotect pmd_t in dax_mapping_entry_mkclean fs/Kconfig | 2 +- fs/dax.c | 49 ++++++++++++++++++++++++++++++------------- include/asm-generic/pgtable.h | 10 +++++++++ include/linux/mm.h | 4 ++-- mm/memory.c | 41 ++++++++++++++++++++++++++++-------- 5 files changed, 79 insertions(+), 27 deletions(-) -- 2.7.4