<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">

Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
---

 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(&amp;lo-&gt;lo_lock);
-		pending = lo-&gt;lo_pending;
 
 		/*
 		 * could be upped because of tear-down, not pending work
 		 */
-		if (unlikely(!pending)) {
+		if (unlikely(!lo-&gt;lo_pending)) {
 			spin_unlock_irq(&amp;lo-&gt;lo_lock);
 			break;
 		}
 
 		bio = loop_get_bio(lo);
-		pending--;
-		lo-&gt;lo_pending = pending;
+		lo-&gt;lo_pending--;
+		pending = lo-&gt;lo_pending;
 		spin_unlock_irq(&amp;lo-&gt;lo_lock);
 
 		BUG_ON(!bio);
_
</pre></body></html>