On 01/29/2016 08:18 AM, Dan Williams wrote:
+unsigned char *read_dev_sector(struct block_device *bdev, sector_t n, Sector *p) +{ struct page *page; - page = read_mapping_page(mapping, (pgoff_t)(n >> (PAGE_CACHE_SHIFT-9)), - NULL); + /* don't populate page cache for dax capable devices */ + if (IS_DAX(bdev->bd_inode)) + page = read_dax_sector(bdev, n); + else + page = read_pagecache_sector(bdev, n); +
Fall back to non-dax, if dax fails?
+struct page *read_dax_sector(struct block_device *bdev, sector_t n) +{ + struct page *page = __page_cache_alloc(GFP_KERNEL | __GFP_COLD);
Why isn't that just alloc_pages()? -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html