diff options
author | Dan Williams <dan.j.williams@intel.com> | 2016-01-16 01:55:59 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-16 02:56:32 +0100 |
commit | b2e0d1625e193b40cbbd45b799f82d54d34e015c (patch) | |
tree | 88cbdfb54fb23f3a8fae2e05c9b7c897e23fc208 /mm/page_idle.c | |
parent | dax: guarantee page aligned results from bdev_direct_access() (diff) | |
download | linux-b2e0d1625e193b40cbbd45b799f82d54d34e015c.tar.xz linux-b2e0d1625e193b40cbbd45b799f82d54d34e015c.zip |
dax: fix lifetime of in-kernel dax mappings with dax_map_atomic()
The DAX implementation needs to protect new calls to ->direct_access()
and usage of its return value against the driver for the underlying
block device being disabled. Use blk_queue_enter()/blk_queue_exit() to
hold off blk_cleanup_queue() from proceeding, or otherwise fail new
mapping requests if the request_queue is being torn down.
This also introduces blk_dax_ctl to simplify the interface from fs/dax.c
through dax_map_atomic() to bdev_direct_access().
[willy@linux.intel.com: fix read() of a hole]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
Cc: Jan Kara <jack@suse.com>
Cc: Jens Axboe <axboe@fb.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/page_idle.c')
0 files changed, 0 insertions, 0 deletions