<div dir="ltr">Merged.</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 18, 2016 at 6:22 PM, Benjamin Marzinski <span dir="ltr"><<a href="mailto:bmarzins@redhat.com" target="_blank">bmarzins@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Oct 18, 2016 at 10:51:08AM +0800, <a href="mailto:tang.junhui@zte.com.cn">tang.junhui@zte.com.cn</a> wrote:<br>
> From: "tang.junhui" <<a href="mailto:tang.junhui@zte.com.cn">tang.junhui@zte.com.cn</a>><br>
><br>
> there are vecs->mpvec memory accesses outside of locking range in<br>
> check_path(), the judgments is not necessary since the they has<br>
> existed in vector_foreach_slot(), so delete them.<br>
<br>
</span>ACK<br>
<br>
-Ben<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> Signed-off-by: tang.junhui <<a href="mailto:tang.junhui@zte.com.cn">tang.junhui@zte.com.cn</a>><br>
> ---<br>
> multipathd/main.c | 45 ++++++++++++++++++++++--------<wbr>---------------<br>
> 1 file changed, 22 insertions(+), 23 deletions(-)<br>
><br>
> diff --git a/multipathd/main.c b/multipathd/main.c<br>
> index b6eb696..e369a79 100644<br>
> --- a/multipathd/main.c<br>
> +++ b/multipathd/main.c<br>
> @@ -1804,30 +1804,29 @@ checkerloop (void *ap)<br>
> condlog(4, "timeout waiting for DAEMON_IDLE");<br>
> continue;<br>
> }<br>
> - if (vecs->pathvec) {<br>
> - pthread_cleanup_push(cleanup_<wbr>lock, &vecs->lock);<br>
> - lock(&vecs->lock);<br>
> - pthread_testcancel();<br>
> - vector_foreach_slot (vecs->pathvec, pp, i) {<br>
> - rc = check_path(vecs, pp, ticks);<br>
> - if (rc < 0) {<br>
> - vector_del_slot(vecs->pathvec, i);<br>
> - free_path(pp);<br>
> - i--;<br>
> - } else<br>
> - num_paths += rc;<br>
> - }<br>
> - lock_cleanup_pop(vecs->lock);<br>
> - }<br>
> - if (vecs->mpvec) {<br>
> - pthread_cleanup_push(cleanup_<wbr>lock, &vecs->lock);<br>
> - lock(&vecs->lock);<br>
> - pthread_testcancel();<br>
> - defered_failback_tick(vecs-><wbr>mpvec);<br>
> - retry_count_tick(vecs->mpvec);<br>
> - missing_uev_wait_tick(vecs);<br>
> - lock_cleanup_pop(vecs->lock);<br>
> +<br>
> + pthread_cleanup_push(cleanup_<wbr>lock, &vecs->lock);<br>
> + lock(&vecs->lock);<br>
> + pthread_testcancel();<br>
> + vector_foreach_slot (vecs->pathvec, pp, i) {<br>
> + rc = check_path(vecs, pp, ticks);<br>
> + if (rc < 0) {<br>
> + vector_del_slot(vecs->pathvec, i);<br>
> + free_path(pp);<br>
> + i--;<br>
> + } else<br>
> + num_paths += rc;<br>
> }<br>
> + lock_cleanup_pop(vecs->lock);<br>
> +<br>
> + pthread_cleanup_push(cleanup_<wbr>lock, &vecs->lock);<br>
> + lock(&vecs->lock);<br>
> + pthread_testcancel();<br>
> + defered_failback_tick(vecs-><wbr>mpvec);<br>
> + retry_count_tick(vecs->mpvec);<br>
> + missing_uev_wait_tick(vecs);<br>
> + lock_cleanup_pop(vecs->lock);<br>
> +<br>
> if (count)<br>
> count--;<br>
> else {<br>
> --<br>
> 2.8.1.windows.1<br>
</div></div></blockquote></div><br></div>