gfs2: Minor retry logic cleanup
authorAndreas Gruenbacher <agruenba@redhat.com>
Thu, 17 Mar 2022 13:20:38 +0000 (14:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 May 2022 07:16:26 +0000 (09:16 +0200)
[ Upstream commit 124c458a401a2497f796e4f2d6cafac6edbea8e9 ]

Clean up the retry logic in the read and write functions somewhat.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/gfs2/file.c

index b53ad18e5ccbfac3a4d5a18d1035d7d10552f675..de0122806fb3f211f1b4465dde0ca4d4990322da 100644 (file)
@@ -851,9 +851,9 @@ retry_under_glock:
                leftover = fault_in_iov_iter_writeable(to, window_size);
                gfs2_holder_disallow_demote(gh);
                if (leftover != window_size) {
-                       if (!gfs2_holder_queued(gh))
-                               goto retry;
-                       goto retry_under_glock;
+                       if (gfs2_holder_queued(gh))
+                               goto retry_under_glock;
+                       goto retry;
                }
        }
        if (gfs2_holder_queued(gh))
@@ -920,9 +920,9 @@ retry_under_glock:
                leftover = fault_in_iov_iter_readable(from, window_size);
                gfs2_holder_disallow_demote(gh);
                if (leftover != window_size) {
-                       if (!gfs2_holder_queued(gh))
-                               goto retry;
-                       goto retry_under_glock;
+                       if (gfs2_holder_queued(gh))
+                               goto retry_under_glock;
+                       goto retry;
                }
        }
 out:
@@ -989,12 +989,11 @@ retry_under_glock:
                leftover = fault_in_iov_iter_writeable(to, window_size);
                gfs2_holder_disallow_demote(&gh);
                if (leftover != window_size) {
-                       if (!gfs2_holder_queued(&gh)) {
-                               if (written)
-                                       goto out_uninit;
-                               goto retry;
-                       }
-                       goto retry_under_glock;
+                       if (gfs2_holder_queued(&gh))
+                               goto retry_under_glock;
+                       if (written)
+                               goto out_uninit;
+                       goto retry;
                }
        }
        if (gfs2_holder_queued(&gh))
@@ -1068,12 +1067,11 @@ retry_under_glock:
                gfs2_holder_disallow_demote(gh);
                if (leftover != window_size) {
                        from->count = min(from->count, window_size - leftover);
-                       if (!gfs2_holder_queued(gh)) {
-                               if (read)
-                                       goto out_uninit;
-                               goto retry;
-                       }
-                       goto retry_under_glock;
+                       if (gfs2_holder_queued(gh))
+                               goto retry_under_glock;
+                       if (read)
+                               goto out_uninit;
+                       goto retry;
                }
        }
 out_unlock: