From: Sebastian Andrzej Siewior <bige...@linutronix.de>

The spinlock() within the condition in while() will cause a compile error
if it is not a function. This is not a problem on mainline but it does not
look pretty and there is no reason to do it that way.
That patch writes it a little differently and avoids the double condition.

Signed-off-by: Sebastian Andrzej Siewior <bige...@linutronix.de>
Signed-off-by: David Howells <dhowe...@redhat.com>
---

 fs/fscache/page.c |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/fs/fscache/page.c b/fs/fscache/page.c
index ff000e5..4882c80 100644
--- a/fs/fscache/page.c
+++ b/fs/fscache/page.c
@@ -796,11 +796,16 @@ void fscache_invalidate_writes(struct fscache_cookie 
*cookie)
 
        _enter("");
 
-       while (spin_lock(&cookie->stores_lock),
-              n = radix_tree_gang_lookup_tag(&cookie->stores, results, 0,
-                                             ARRAY_SIZE(results),
-                                             FSCACHE_COOKIE_PENDING_TAG),
-              n > 0) {
+       for (;;) {
+               spin_lock(&cookie->stores_lock);
+               n = radix_tree_gang_lookup_tag(&cookie->stores, results, 0,
+                                              ARRAY_SIZE(results),
+                                              FSCACHE_COOKIE_PENDING_TAG);
+               if (n == 0) {
+                       spin_unlock(&cookie->stores_lock);
+                       break;
+               }
+
                for (i = n - 1; i >= 0; i--) {
                        page = results[i];
                        radix_tree_delete(&cookie->stores, page->index);
@@ -812,7 +817,6 @@ void fscache_invalidate_writes(struct fscache_cookie 
*cookie)
                        page_cache_release(results[i]);
        }
 
-       spin_unlock(&cookie->stores_lock);
        _leave("");
 }
 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to