2024-04-16 21:47:43

by Verma, Vishal L

[permalink] [raw]
Subject: [PATCH v2 4/4] dax/bus.c: Use the right locking mode (read vs write) in size_show

In size_show(), the dax_dev_rwsem only needs a read lock, but was
acquiring a write lock. Change it to down_read_interruptible() so it
doesn't unnecessarily hold a write lock.

Cc: Dan Williams <[email protected]>
Fixes: c05ae9d85b47 ("dax/bus.c: replace driver-core lock usage by a local rwsem")
Signed-off-by: Vishal Verma <[email protected]>
---
drivers/dax/bus.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
index db183eb5ce3a..66095e60a279 100644
--- a/drivers/dax/bus.c
+++ b/drivers/dax/bus.c
@@ -939,11 +939,11 @@ static ssize_t size_show(struct device *dev,
unsigned long long size;
int rc;

- rc = down_write_killable(&dax_dev_rwsem);
+ rc = down_read_interruptible(&dax_dev_rwsem);
if (rc)
return rc;
size = dev_dax_size(dev_dax);
- up_write(&dax_dev_rwsem);
+ up_read(&dax_dev_rwsem);

return sysfs_emit(buf, "%llu\n", size);
}

--
2.44.0



2024-04-30 01:26:59

by Dan Williams

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] dax/bus.c: Use the right locking mode (read vs write) in size_show

Vishal Verma wrote:
> In size_show(), the dax_dev_rwsem only needs a read lock, but was
> acquiring a write lock. Change it to down_read_interruptible() so it
> doesn't unnecessarily hold a write lock.
>
> Cc: Dan Williams <[email protected]>
> Fixes: c05ae9d85b47 ("dax/bus.c: replace driver-core lock usage by a local rwsem")
> Signed-off-by: Vishal Verma <[email protected]>
> ---
> drivers/dax/bus.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Looks good,

Reviewed-by: Dan Williams <[email protected]>