<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 9, 2020 at 4:44 PM Jan Stancek <<a href="mailto:jstancek@redhat.com" target="_blank">jstancek@redhat.com</a>> wrote:<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> +     value ? (time_delay = 30) : (time_delay = 1);<br>
> +<br>
> +     ret = TST_RETRY_FN_EXP_BACKOFF(access(sys_loop_partpath, F_OK),<br>
> TST_RETVAL_EQ0, time_delay);<br>
<br>
Shouldn't we invert also the check when value == 0? At the moment<br>
there's TST_RETVAL_EQ0 for all cases, but we expect path to exist<br>
only for value == 1, correct?<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">Obviously yes, and I have thought a while to decrease the</div><div class="gmail_default" style="font-size:small">waiting time for the nonzero return, but didn't realize there is also</div><div class="gmail_default" style="font-size:small">a macro named <span class="gmail_default"></span>TST_RETVAL_NOTNULL(x) can be used:).</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Thanks for the suggestion, I think your method is better.</div></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
diff --git a/testcases/kernel/syscalls/ioctl/ioctl09.c b/testcases/kernel/syscalls/ioctl/ioctl09.c<br>
index 151618df41db..dff31d58a054 100644<br>
--- a/testcases/kernel/syscalls/ioctl/ioctl09.c<br>
+++ b/testcases/kernel/syscalls/ioctl/ioctl09.c<br>
@@ -28,6 +28,9 @@ static void change_partition(const char *const cmd[])<br>
                tst_brk(TBROK, "parted return %i", ret);<br>
 }<br>
<br>
<span class="gmail_default" style="font-size:small"></span>+#define RETVAL_CHECK(x) \<br>
+       ({ value ? TST_RETVAL_EQ0(x) : <span class="gmail_default" style="font-size:small"></span>TST_RETVAL_NOTNULL(x); })<br>
+<br>
 static void check_partition(int part_num, bool value)<br>
 {<br>
        int ret;<br>
@@ -36,7 +39,7 @@ static void check_partition(int part_num, bool value)<br>
                dev_num, dev_num, part_num);<br>
        sprintf(loop_partpath, "%sp%d", dev_path, part_num);<br>
<br>
-       ret = access(sys_loop_partpath, F_OK);<br>
+       ret = TST_RETRY_FN_EXP_BACKOFF(access(sys_loop_partpath, F_OK), RETVAL_CHECK, 30);<br>
        if (ret == 0)<br>
                tst_res(value ? TPASS : TFAIL, "access %s succeeds",<br>
                        sys_loop_partpath);<br>
@@ -44,7 +47,7 @@ static void check_partition(int part_num, bool value)<br>
                tst_res(value ? TFAIL : TPASS, "access %s fails",<br>
                        sys_loop_partpath);<br>
<br>
-       ret = access(loop_partpath, F_OK);<br>
+       ret = TST_RETRY_FN_EXP_BACKOFF(access(loop_partpath, F_OK), RETVAL_CHECK, 30);<br>
        if (ret == 0)<br>
                tst_res(value ? TPASS : TFAIL, "access %s succeeds",<br>
                        loop_partpath);<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>