Skip to content

Commit

Permalink
dax: bdev_direct_access() may sleep
Browse files Browse the repository at this point in the history
The brd driver is the only in-tree driver that may sleep currently.
After some discussion on linux-fsdevel, we decided that any driver
may choose to sleep in its ->direct_access method.  To ensure that all
callers of bdev_direct_access() are prepared for this, add a call
to might_sleep().

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Matthew Wilcox authored and Al Viro committed Jul 4, 2015
1 parent bbab37d commit 43c3dd0
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions fs/block_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,12 @@ long bdev_direct_access(struct block_device *bdev, sector_t sector,
long avail;
const struct block_device_operations *ops = bdev->bd_disk->fops;

/*
* The device driver is allowed to sleep, in order to make the
* memory directly accessible.
*/
might_sleep();

if (size < 0)
return size;
if (!ops->direct_access)
Expand Down

0 comments on commit 43c3dd0

Please sign in to comment.