summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoss Zwisler <ross.zwisler@linux.intel.com>2016-01-13 16:47:47 +1100
committerStephen Rothwell <sfr@canb.auug.org.au>2016-01-15 14:25:19 +1100
commitf0c3c1ce529e5b20324ec193ffb30b114f71fe45 (patch)
tree409a2afb1a0b5631c13faf77175871495c10c0e3
parentaa812f8858109172b8ae00ad356d47f7ac77b72e (diff)
downloadlinux-next-f0c3c1ce529e5b20324ec193ffb30b114f71fe45.tar.gz
dax: add support for fsync/msync
3) Removed second verification of our radix tree entry before cache flush in dax_writeback_one(). (Jan Kara) Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: "J. Bruce Fields" <bfields@fieldses.org> Cc: "Theodore Ts'o" <tytso@mit.edu> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Andreas Dilger <adilger.kernel@dilger.ca> Cc: Dave Chinner <david@fromorbit.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jan Kara <jack@suse.com> Cc: Jeff Layton <jlayton@poochiereds.net> Cc: Matthew Wilcox <willy@linux.intel.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Matthew Wilcox <matthew.r.wilcox@intel.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--fs/dax.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/fs/dax.c b/fs/dax.c
index 3ac141b2798b..1a40cf0f22e8 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -420,23 +420,14 @@ static int dax_writeback_one(struct block_device *bdev,
if (WARN_ON_ONCE(ret < dax.size)) {
ret = -EIO;
- dax_unmap_atomic(bdev, &dax);
- return ret;
- }
-
- spin_lock_irq(&mapping->tree_lock);
- /*
- * We need to revalidate our radix entry while holding tree_lock
- * before we do the writeback.
- */
- if (!__radix_tree_lookup(page_tree, index, &node, &slot))
- goto unmap;
- if (*slot != entry)
goto unmap;
+ }
wb_cache_pmem(dax.addr, dax.size);
unmap:
dax_unmap_atomic(bdev, &dax);
+ return ret;
+
unlock:
spin_unlock_irq(&mapping->tree_lock);
return ret;