diff mbox series

[v2] fstests: don't relay on /proc/partitions for device size

Message ID 20210326073846.14520-1-johannes.thumshirn@wdc.com (mailing list archive)
State New
Headers show
Series [v2] fstests: don't relay on /proc/partitions for device size | expand

Commit Message

Johannes Thumshirn March 26, 2021, 7:38 a.m. UTC
Non-partitionable devices, like zoned block devices, aren't showing up in in
/proc/partitions and therefore we cannot relay on it to get a device's
size.

Use blockdev --getsz to get the block device size.

Cc: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>

---
Changes to v1:
- Use blockdev --getsz instead of sysfs (Nikolay/Damien)
---
 common/rc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Damien Le Moal March 26, 2021, 7:46 a.m. UTC | #1
On 2021/03/26 16:39, Johannes Thumshirn wrote:
> Non-partitionable devices, like zoned block devices, aren't showing up in in
> /proc/partitions and therefore we cannot relay on it to get a device's
> size.
> 
> Use blockdev --getsz to get the block device size.
> 
> Cc: Naohiro Aota <naohiro.aota@wdc.com>
> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
> 
> ---
> Changes to v1:
> - Use blockdev --getsz instead of sysfs (Nikolay/Damien)
> ---
>  common/rc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/common/rc b/common/rc
> index 1c814b9aabf1..40a9bfac31da 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -3778,7 +3778,7 @@ _get_available_space()
>  # return device size in kb
>  _get_device_size()
>  {
> -	grep -w `_short_dev $1` /proc/partitions | awk '{print $3}'
> +	blockdev --getsz $1

That is 512B sectors unit... This should be KB, no ?

>  }
>  
>  # Make sure we actually have dmesg checking set up.
>
Johannes Thumshirn March 26, 2021, 7:49 a.m. UTC | #2
On 26/03/2021 08:46, Damien Le Moal wrote:
> On 2021/03/26 16:39, Johannes Thumshirn wrote:
>> Non-partitionable devices, like zoned block devices, aren't showing up in in
>> /proc/partitions and therefore we cannot relay on it to get a device's
>> size.
>>
>> Use blockdev --getsz to get the block device size.
>>
>> Cc: Naohiro Aota <naohiro.aota@wdc.com>
>> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
>>
>> ---
>> Changes to v1:
>> - Use blockdev --getsz instead of sysfs (Nikolay/Damien)
>> ---
>>  common/rc | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/common/rc b/common/rc
>> index 1c814b9aabf1..40a9bfac31da 100644
>> --- a/common/rc
>> +++ b/common/rc
>> @@ -3778,7 +3778,7 @@ _get_available_space()
>>  # return device size in kb
>>  _get_device_size()
>>  {
>> -	grep -w `_short_dev $1` /proc/partitions | awk '{print $3}'
>> +	blockdev --getsz $1
> 
> That is 512B sectors unit... This should be KB, no ?
>

Right...

Should be 'echo $(($(blockdev --getsz $1) >> 1))'
diff mbox series

Patch

diff --git a/common/rc b/common/rc
index 1c814b9aabf1..40a9bfac31da 100644
--- a/common/rc
+++ b/common/rc
@@ -3778,7 +3778,7 @@  _get_available_space()
 # return device size in kb
 _get_device_size()
 {
-	grep -w `_short_dev $1` /proc/partitions | awk '{print $3}'
+	blockdev --getsz $1
 }
 
 # Make sure we actually have dmesg checking set up.