diff options
Diffstat (limited to 'fs/block_dev.c')
-rw-r--r-- | fs/block_dev.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index 22ea424ee741..073bb57adab1 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -1242,6 +1242,13 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) | |||
1242 | goto out_clear; | 1242 | goto out_clear; |
1243 | } | 1243 | } |
1244 | bd_set_size(bdev, (loff_t)bdev->bd_part->nr_sects << 9); | 1244 | bd_set_size(bdev, (loff_t)bdev->bd_part->nr_sects << 9); |
1245 | /* | ||
1246 | * If the partition is not aligned on a page | ||
1247 | * boundary, we can't do dax I/O to it. | ||
1248 | */ | ||
1249 | if ((bdev->bd_part->start_sect % (PAGE_SIZE / 512)) || | ||
1250 | (bdev->bd_part->nr_sects % (PAGE_SIZE / 512))) | ||
1251 | bdev->bd_inode->i_flags &= ~S_DAX; | ||
1245 | } | 1252 | } |
1246 | } else { | 1253 | } else { |
1247 | if (bdev->bd_contains == bdev) { | 1254 | if (bdev->bd_contains == bdev) { |