Signed-off-by: Andrew Morton --- drivers/block/loop.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff -puN drivers/block/loop.c~optimise-loop-driver-a-bit-tidy drivers/block/loop.c --- 25/drivers/block/loop.c~optimise-loop-driver-a-bit-tidy 2005-04-26 22:06:07.236326208 -0700 +++ 25-akpm/drivers/block/loop.c 2005-04-26 22:06:41.645095280 -0700 @@ -594,19 +594,18 @@ static int loop_thread(void *data) continue; spin_lock_irq(&lo->lo_lock); - pending = lo->lo_pending; /* * could be upped because of tear-down, not pending work */ - if (unlikely(!pending)) { + if (unlikely(!lo->lo_pending)) { spin_unlock_irq(&lo->lo_lock); break; } bio = loop_get_bio(lo); - pending--; - lo->lo_pending = pending; + lo->lo_pending--; + pending = lo->lo_pending; spin_unlock_irq(&lo->lo_lock); BUG_ON(!bio); _