thread-pool: clean up thread_pool_completion_bh()
This patch simplifies thread_pool_completion_bh().
The function first checks elem->state:
  if (elem->state != THREAD_DONE) {
      continue;
  }
It then goes on to check elem->state == THREAD_DONE although we already
know this must be the case.
The QLIST_REMOVE() is duplicated down both branches of an if-else
statement so that can be lifted out as well.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1427992762-10126-1-git-send-email-stefanha@redhat.com
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									d1a126c53d
								
							
						
					
					
						commit
						1faa5bb732
					
				@ -170,12 +170,12 @@ restart:
 | 
				
			|||||||
        if (elem->state != THREAD_DONE) {
 | 
					        if (elem->state != THREAD_DONE) {
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (elem->state == THREAD_DONE) {
 | 
					
 | 
				
			||||||
            trace_thread_pool_complete(pool, elem, elem->common.opaque,
 | 
					        trace_thread_pool_complete(pool, elem, elem->common.opaque,
 | 
				
			||||||
                                       elem->ret);
 | 
					                                   elem->ret);
 | 
				
			||||||
        }
 | 
					        QLIST_REMOVE(elem, all);
 | 
				
			||||||
        if (elem->state == THREAD_DONE && elem->common.cb) {
 | 
					
 | 
				
			||||||
            QLIST_REMOVE(elem, all);
 | 
					        if (elem->common.cb) {
 | 
				
			||||||
            /* Read state before ret.  */
 | 
					            /* Read state before ret.  */
 | 
				
			||||||
            smp_rmb();
 | 
					            smp_rmb();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -188,8 +188,6 @@ restart:
 | 
				
			|||||||
            qemu_aio_unref(elem);
 | 
					            qemu_aio_unref(elem);
 | 
				
			||||||
            goto restart;
 | 
					            goto restart;
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            /* remove the request */
 | 
					 | 
				
			||||||
            QLIST_REMOVE(elem, all);
 | 
					 | 
				
			||||||
            qemu_aio_unref(elem);
 | 
					            qemu_aio_unref(elem);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user