[LTP] [PATCH v4 3/4] syscalls/statx11: Add basic test for STATX_DIOALIGN on block device
Yang Xu (Fujitsu)
xuyang2018.jy@fujitsu.com
Thu Apr 27 05:37:34 CEST 2023
2023/04/27 6:12, Eric Biggers 写道:
> On Thu, Apr 06, 2023 at 01:40:21PM +0800, Yang Xu wrote:
>> +static void verify_statx(void)
>> +{
>> + struct statx buf;
>> +
>> + memset(&buf, 0, sizeof(buf));
>
> It is not necessary to memset struct statx to 0 before calling statx().
Will remove.
>
>> +#ifdef HAVE_STRUCT_STATX_STX_DIO_MEM_ALIGN
>
> Again, this looks wrong. If the system headers are outdated, then LTP should
> use its in-tree header instead.
Have mention this in the previous email. We can discussion this in that
email.
>
>> +static void setup(void)
>> +{
>> + char *dev_name;
>> +
>> + dev_name = basename((char *)tst_device->dev);
>
> This is modifying a const string, which seems problematic.
Yes, I plan to modify code as below:
char full_name[256];
strcpy(full_name, tst_device->dev);
dev_name = SAFE_BASENAME(full_name);
>
>> + sprintf(sys_bdev_logical_path, "/sys/block/%s/queue/logical_block_size", dev_name);
>> + while (access(sys_bdev_logical_path, F_OK) != 0) {
>> + dev_name[strlen(dev_name)-1] = '\0';
>> + sprintf(sys_bdev_logical_path, "/sys/block/%s/queue/logical_block_size", dev_name);
>> + }
>
> What is this code doing? Is it trying to strip off the partition number of the
> block device name?
Yes.
>If so, it is incorrect because it assumes the partition
> number is only 1 digit long, which is not guaranteed.
I don't assume the partition number is only 1 digit long, this code has
a while circulate. Also, I try the /dev/vdb11 and it also works.
>
> How about just using /sys/class/block/%s/queue, which works for partitions?
In fact, /sys/block or /sys/class/block, these files are all link files
to /sys/device/pci...... see below:
#cd /sys/class/block
[root@localhost block]# ls -l
total 0
lrwxrwxrwx. 1 root root 0 Apr 20 00:07 loop0 ->
../../devices/virtual/block/loop0
lrwxrwxrwx. 1 root root 0 Apr 20 00:07 loop1 ->
../../devices/virtual/block/loop1
lrwxrwxrwx. 1 root root 0 Apr 27 08:25 sda ->
../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda
lrwxrwxrwx. 1 root root 0 Apr 27 08:25 sda1 ->
../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1
lrwxrwxrwx. 1 root root 0 Apr 27 08:25 sda2 ->
../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda2
lrwxrwxrwx. 1 root root 0 Apr 27 08:25 sda3 ->
../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda3
lrwxrwxrwx. 1 root root 0 Apr 27 08:25 sda4 ->
../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda4
lrwxrwxrwx. 1 root root 0 Apr 27 08:25 sda5 ->
../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda5
lrwxrwxrwx. 1 root root 0 Apr 27 08:25 sda6 ->
../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda6
lrwxrwxrwx. 1 root root 0 Apr 27 08:25 zram0 ->
../../devices/virtual/block/zram0
[root@localhost block]# cd /sys/block/
[root@localhost block]# ls -l
total 0
lrwxrwxrwx. 1 root root 0 Apr 20 00:03 loop0 ->
../devices/virtual/block/loop0
lrwxrwxrwx. 1 root root 0 Apr 20 00:03 loop1 ->
../devices/virtual/block/loop1
lrwxrwxrwx. 1 root root 0 Apr 20 00:03 sda ->
../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda
lrwxrwxrwx. 1 root root 0 Apr 20 00:03 zram0 ->
../devices/virtual/block/zram0
[root@localhost block]# pwd
Best Regards
Yang Xu
>
> - Eric
More information about the ltp
mailing list