mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
dax: check for QUEUE_FLAG_DAX in bdev_dax_supported()
Add an explicit check for QUEUE_FLAG_DAX to __bdev_dax_supported(). This
is needed for DM configurations where the first element in the dm-linear or
dm-stripe target supports DAX, but other elements do not. Without this
check __bdev_dax_supported() will pass for such devices, letting a
filesystem on that device mount with the DAX option.
Signed-off-by: Ross Zwisler <[email protected]>
Suggested-by: Mike Snitzer <[email protected]>
Fixes: commit 545ed20e6d ("dm: add infrastructure for DAX support")
Cc: [email protected]
Acked-by: Dan Williams <[email protected]>
Reviewed-by: Toshi Kani <[email protected]>
Signed-off-by: Mike Snitzer <[email protected]>
This commit is contained in:
parent
4557641b4c
commit
15256f6cc4
1 changed files with 8 additions and 0 deletions
|
|
@ -86,6 +86,7 @@ bool __bdev_dax_supported(struct block_device *bdev, int blocksize)
|
|||
{
|
||||
struct dax_device *dax_dev;
|
||||
bool dax_enabled = false;
|
||||
struct request_queue *q;
|
||||
pgoff_t pgoff;
|
||||
int err, id;
|
||||
void *kaddr;
|
||||
|
|
@ -99,6 +100,13 @@ bool __bdev_dax_supported(struct block_device *bdev, int blocksize)
|
|||
return false;
|
||||
}
|
||||
|
||||
q = bdev_get_queue(bdev);
|
||||
if (!q || !blk_queue_dax(q)) {
|
||||
pr_debug("%s: error: request queue doesn't support dax\n",
|
||||
bdevname(bdev, buf));
|
||||
return false;
|
||||
}
|
||||
|
||||
err = bdev_dax_pgoff(bdev, 0, PAGE_SIZE, &pgoff);
|
||||
if (err) {
|
||||
pr_debug("%s: error: unaligned partition for dax\n",
|
||||
|
|
|
|||
Loading…
Reference in a new issue