Re: [PATCH] loop: Fix wrong masking of status flags

From: Naresh Kamboju
Date: Thu Jun 04 2020 - 17:54:04 EST


On Fri, 5 Jun 2020 at 01:55, Martijn Coenen <maco@xxxxxxxxxxx> wrote:
>
> In faf1d25440d6, loop_set_status() now assigns lo_status directly from
> the passed in lo_flags, but then fixes it up by masking out flags that
> can't be set by LOOP_SET_STATUS; unfortunately the mask was negated.
>
> Re-ran all ltp ioctl_loop tests, and they all passed.
>
> Pass run of the previously failing one:
>
> tst_test.c:1247: INFO: Timeout per run is 0h 05m 00s
> tst_device.c:88: INFO: Found free device 0 '/dev/loop0'
> ioctl_loop01.c:49: PASS: /sys/block/loop0/loop/partscan = 0
> ioctl_loop01.c:50: PASS: /sys/block/loop0/loop/autoclear = 0
> ioctl_loop01.c:51: PASS: /sys/block/loop0/loop/backing_file =
> '/tmp/ZRJ6H4/test.img'
> ioctl_loop01.c:65: PASS: get expected lo_flag 12
> ioctl_loop01.c:67: PASS: /sys/block/loop0/loop/partscan = 1
> ioctl_loop01.c:68: PASS: /sys/block/loop0/loop/autoclear = 1
> ioctl_loop01.c:77: PASS: access /dev/loop0p1 succeeds
> ioctl_loop01.c:83: PASS: access /sys/block/loop0/loop0p1 succeeds
>
> Summary:
> passed 8
> failed 0
> skipped 0
> warnings 0
>
> Fixes: faf1d25440d6 ("loop: Clean up LOOP_SET_STATUS lo_flags handling")
> Signed-off-by: Martijn Coenen <maco@xxxxxxxxxxx>
Reported-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
Tested-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>

Thanks for the quick fix patch.
I have tested with the patch applied on x86 and arm64
and confirm it fixes the reported problem [1].

Test log link,
https://lkft.validation.linaro.org/scheduler/job/1471435#L1299
https://lkft.validation.linaro.org/scheduler/job/1471574#L714

ref:
https://lore.kernel.org/linux-block/CAB0TPYEx4Z8do3qL1KVpnGGnorTLGqKtrwi1uQgxQ6Xw3JqiYw@xxxxxxxxxxxxxx/T/#t

- Naresh