The Coverity annotation added earlier to suppress a false positive about missing unlock in zbd_adjust_block() didn't work because it was placed not before the return statement, but earlier in the code. Move the annotation to the right place to avoid the warning. Reported-by: Bart Van Assche <bvanassche@xxxxxxx> Fixes: 8e4b2e55512f("zbd: don't unlock zone mutex after verify replay") Signed-off-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> --- zbd.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zbd.c b/zbd.c index 4710645d..6a26fe10 100644 --- a/zbd.c +++ b/zbd.c @@ -1620,12 +1620,6 @@ enum io_u_action zbd_adjust_block(struct thread_data *td, struct io_u *io_u) case DDIR_READ: if (td->runstate == TD_VERIFYING && td_write(td)) { zb = zbd_replay_write_order(td, io_u, zb); - /* - * Since we return with the zone lock still held, - * add an annotation to let Coverity know that it - * is intentional. - */ - /* coverity[missing_unlock] */ goto accept; } /* @@ -1786,6 +1780,12 @@ accept: assert(!io_u->zbd_put_io); io_u->zbd_queue_io = zbd_queue_io; io_u->zbd_put_io = zbd_put_io; + /* + * Since we return with the zone lock still held, + * add an annotation to let Coverity know that it + * is intentional. + */ + /* coverity[missing_unlock] */ return io_u_accept; eof: -- 2.28.0