A future fuse patch will utilize dax_holder() in RCU context to make sure that the holder can't be freed by a racing fs_put_dax.
This patch just makes sure that dax_holder() works properly in such a context by adding READ_ONCE() (equivalent to rcu_dereference minus sanity checks). Signed-off-by: Miklos Szeredi <[email protected]> --- drivers/dax/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dax/super.c b/drivers/dax/super.c index 25836f389bde..76e8d3654629 100644 --- a/drivers/dax/super.c +++ b/drivers/dax/super.c @@ -642,7 +642,7 @@ EXPORT_SYMBOL_GPL(put_dax); */ void *dax_holder(struct dax_device *dax_dev) { - return dax_dev->holder_data; + return READ_ONCE(dax_dev->holder_data); } EXPORT_SYMBOL_GPL(dax_holder); -- 2.54.0
