diff options
author | Ross Zwisler <ross.zwisler@linux.intel.com> | 2016-01-13 16:47:47 +1100 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2016-01-15 14:25:19 +1100 |
commit | f0c3c1ce529e5b20324ec193ffb30b114f71fe45 (patch) | |
tree | 409a2afb1a0b5631c13faf77175871495c10c0e3 | |
parent | aa812f8858109172b8ae00ad356d47f7ac77b72e (diff) | |
download | linux-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.c | 15 |
1 files changed, 3 insertions, 12 deletions
@@ -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; |