dax: move the dax_read_lock() locking into dax_supported
Move the dax_read_lock/dax_read_unlock pair from the callers into dax_supported to make it a little easier to use. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Link: https://lore.kernel.org/r/20210826135510.6293-6-hch@lst.de Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
1b7646014e
commit
673a0658f6
@ -219,7 +219,6 @@ bool __bdev_dax_supported(struct block_device *bdev, int blocksize)
|
||||
struct request_queue *q;
|
||||
char buf[BDEVNAME_SIZE];
|
||||
bool ret;
|
||||
int id;
|
||||
|
||||
q = bdev_get_queue(bdev);
|
||||
if (!q || !blk_queue_dax(q)) {
|
||||
@ -235,10 +234,8 @@ bool __bdev_dax_supported(struct block_device *bdev, int blocksize)
|
||||
return false;
|
||||
}
|
||||
|
||||
id = dax_read_lock();
|
||||
ret = dax_supported(dax_dev, bdev, blocksize, 0,
|
||||
i_size_read(bdev->bd_inode) / 512);
|
||||
dax_read_unlock(id);
|
||||
|
||||
put_dax(dax_dev);
|
||||
|
||||
@ -356,13 +353,18 @@ EXPORT_SYMBOL_GPL(dax_direct_access);
|
||||
bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
|
||||
int blocksize, sector_t start, sector_t len)
|
||||
{
|
||||
bool ret = false;
|
||||
int id;
|
||||
|
||||
if (!dax_dev)
|
||||
return false;
|
||||
|
||||
if (!dax_alive(dax_dev))
|
||||
return false;
|
||||
|
||||
return dax_dev->ops->dax_supported(dax_dev, bdev, blocksize, start, len);
|
||||
id = dax_read_lock();
|
||||
if (dax_alive(dax_dev))
|
||||
ret = dax_dev->ops->dax_supported(dax_dev, bdev, blocksize,
|
||||
start, len);
|
||||
dax_read_unlock(id);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dax_supported);
|
||||
|
||||
|
@ -809,14 +809,9 @@ EXPORT_SYMBOL_GPL(dm_table_set_type);
|
||||
int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
|
||||
sector_t start, sector_t len, void *data)
|
||||
{
|
||||
int blocksize = *(int *) data, id;
|
||||
bool rc;
|
||||
int blocksize = *(int *) data;
|
||||
|
||||
id = dax_read_lock();
|
||||
rc = !dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len);
|
||||
dax_read_unlock(id);
|
||||
|
||||
return rc;
|
||||
return !dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len);
|
||||
}
|
||||
|
||||
/* Check devices support synchronous DAX */
|
||||
|
Loading…
x
Reference in New Issue
Block a user