Messages in this thread | | | Date | Thu, 28 Jan 2016 12:21:39 -0800 | Subject | Re: [PATCH 2/2] dax: fix bdev NULL pointer dereferences | From | Dan Williams <> |
| |
On Thu, Jan 28, 2016 at 11:35 AM, Ross Zwisler <ross.zwisler@linux.intel.com> wrote: > There are a number of places in dax.c that look up the struct block_device > associated with an inode. Previously this was done by just using > inode->i_sb->s_bdev. This is correct for inodes that exist within the > filesystems supported by DAX (ext2, ext4 & XFS), but when running DAX > against raw block devices this value is NULL. This causes NULL pointer > dereferences when these block_device pointers are used. > > Instead, for raw block devices we need to look up the struct block_device > using I_BDEV(). This patch fixes all the block_device lookups in dax.c so > that they work properly for both filesystems and raw block devices. > > Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
It's a bit odd to check if it is a raw device inode in dax_clear_blocks() since there's no use case to clear blocks in that case, but I can't think of a better alternative.
Acked-by: Dan Williams <dan.j.williams@intel.com>
| |