<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 Fri, Mar 6, 2020 at 8:45 PM Cyril Hrubis <<a href="mailto:chrubis@suse.cz" target="_blank">chrubis@suse.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail_default" style="font-size:small">...</span><br>
>  <br>
> +int tst_is_mounted(const char *path)<br>
> +{<br>
> +     char cmd[PATH_MAX];<br>
> +     int ret;<br>
> +<br>
> +     snprintf(cmd, sizeof(cmd), "mountpoint -q %s", path);<br>
> +     ret = tst_system(cmd);<br>
<br>
I'm not sure that depending on mountpoint command is right choice, there<br>
are all kinds of embedded systems out there that may be missing it.</blockquote><div><br></div><div class="gmail_default" style="font-size:small">Good point, we'd better avoid involving other packages as the dependence of LTP.</div><div class="gmail_default" style="font-size:small"><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>
Also this does not even handle the case that the command is missing.<br>
<br>
Looking at the v4 version, all we need is to correctly parse each line<br>
from from /proc/mounts. I would just use strsep() with space as a<br>
delimited and took first token that starts with a slash i.e. '/', then<br>
we can just strcmp() it against the path. Or do I miss something?<br></blockquote><div> </div><div><div class="gmail_default" style="font-size:small">I'm afraid strcmp() can not satisfy the requirement for us. As you know LTP creates the MNTPOINT in temp dir that means it could not accurately match the string path which extracts from /proc/mounts with a slash.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">e.g</div><div class="gmail_default" style="font-size:small">#define MNTPOINT "fallocate"</div><div class="gmail_default" style="font-size:small">...</div><div class="gmail_default" style="font-size:small">/dev/loop4 on /tmp/FPp7kh/fallocate type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)</div><div class="gmail_default" style="font-size:small">...</div><div class="gmail_default" style="font-size:small">strcmp("/tmp/FPp7kh/fallocate", MNTPOINT) will never ruturn 0 to us. </div></div><div><div class="gmail_default" style="font-size:small"></div></div><div><br></div><div><div class="gmail_default" style="font-size:small">What I can think of is to use strrchr() to cut the string after last '/', but that can only work for test mount fs in LTP ways. Other situations might not satisfy.</div></div><div><br></div></div>-- <br><div dir="ltr"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>