Re: [PATCH v4 6/6] block: Update blkdev_dax_capable() for consistency
From: Toshi Kani <hidden>
Date: 2016-05-11 14:25:10
Also in:
linux-fsdevel, lkml, nvdimm
From: Toshi Kani <hidden>
Date: 2016-05-11 14:25:10
Also in:
linux-fsdevel, lkml, nvdimm
On Wed, 2016-05-11 at 10:05 +0200, Jan Kara wrote:
On Tue 10-05-16 10:23:57, Toshi Kani wrote:quoted
blkdev_dax_capable() is similar to bdev_dax_supported(), but needs to remain as a separate interface for checking dax capability of a raw block device. Rename and relocate blkdev_dax_capable() to keep them maintained consistently, and call bdev_direct_access() for the dax capability check....quoted
+bool bdev_dax_capable(struct block_device *bdev) +{ + struct gendisk *disk = bdev->bd_disk; + struct blk_dax_ctl dax = { + .size = PAGE_SIZE, + }; + + if (!IS_ENABLED(CONFIG_FS_DAX)) + return false;Frankly, I prefer the #ifdef CONFIG_FS_DAX and just compile the code out when DAX is not enabled (like it was with blkdev_dax_capable()). That way we don't grow the kernel for people who don't care about DAX.
When CONFIG_FS_DAX is not set, the rest of the code is optimized out. So, I think the code size is the same. (gdb) disas bdev_dax_capable Dump of assembler code for function bdev_dax_capable: 0xffffffff81260d20 <+0>: callq 0xffffffff81813c30 <__fentry__> 0xffffffff81260d25 <+5>: push %rbp 0xffffffff81260d26 <+6>: xor %eax,%eax 0xffffffff81260d28 <+8>: mov %rsp,%rbp 0xffffffff81260d2b <+11>: pop %rbp 0xffffffff81260d2c <+12>: retq End of assembler dump. Thanks, -Toshi