ceph: replace usage of found with dedicated list iterator variable
authorJakob Koschel <jakobkoschel@gmail.com>
Thu, 31 Mar 2022 21:53:29 +0000 (23:53 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 25 May 2022 18:45:13 +0000 (20:45 +0200)
To move the list iterator variable into the list_for_each_entry_*()
macro in the future it should be avoided to use the list iterator
variable after the loop body.

To *never* use the list iterator variable after the loop it was
concluded to use a separate iterator variable instead of a
found boolean.

This removes the need to use a found variable and simply checking if
the variable was set, can determine if the break/goto was hit.

Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/
Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/caps.c

index 1485a63..b8d9404 100644 (file)
@@ -3183,10 +3183,9 @@ void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci, int nr,
                                struct ceph_snap_context *snapc)
 {
        struct inode *inode = &ci->vfs_inode;
-       struct ceph_cap_snap *capsnap = NULL;
+       struct ceph_cap_snap *capsnap = NULL, *iter;
        int put = 0;
        bool last = false;
-       bool found = false;
        bool flush_snaps = false;
        bool complete_capsnap = false;
 
@@ -3213,14 +3212,14 @@ void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci, int nr,
                     ci->i_wrbuffer_ref, ci->i_wrbuffer_ref_head,
                     last ? " LAST" : "");
        } else {
-               list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) {
-                       if (capsnap->context == snapc) {
-                               found = true;
+               list_for_each_entry(iter, &ci->i_cap_snaps, ci_item) {
+                       if (iter->context == snapc) {
+                               capsnap = iter;
                                break;
                        }
                }
 
-               if (!found) {
+               if (!capsnap) {
                        /*
                         * The capsnap should already be removed when removing
                         * auth cap in the case of a forced unmount.
@@ -3770,8 +3769,7 @@ static void handle_cap_flushsnap_ack(struct inode *inode, u64 flush_tid,
        struct ceph_inode_info *ci = ceph_inode(inode);
        struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc;
        u64 follows = le64_to_cpu(m->snap_follows);
-       struct ceph_cap_snap *capsnap;
-       bool flushed = false;
+       struct ceph_cap_snap *capsnap = NULL, *iter;
        bool wake_ci = false;
        bool wake_mdsc = false;
 
@@ -3779,26 +3777,26 @@ static void handle_cap_flushsnap_ack(struct inode *inode, u64 flush_tid,
             inode, ci, session->s_mds, follows);
 
        spin_lock(&ci->i_ceph_lock);
-       list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) {
-               if (capsnap->follows == follows) {
-                       if (capsnap->cap_flush.tid != flush_tid) {
+       list_for_each_entry(iter, &ci->i_cap_snaps, ci_item) {
+               if (iter->follows == follows) {
+                       if (iter->cap_flush.tid != flush_tid) {
                                dout(" cap_snap %p follows %lld tid %lld !="
-                                    " %lld\n", capsnap, follows,
-                                    flush_tid, capsnap->cap_flush.tid);
+                                    " %lld\n", iter, follows,
+                                    flush_tid, iter->cap_flush.tid);
                                break;
                        }
-                       flushed = true;
+                       capsnap = iter;
                        break;
                } else {
                        dout(" skipping cap_snap %p follows %lld\n",
-                            capsnap, capsnap->follows);
+                            iter, iter->follows);
                }
        }
-       if (flushed)
+       if (capsnap)
                ceph_remove_capsnap(inode, capsnap, &wake_ci, &wake_mdsc);
        spin_unlock(&ci->i_ceph_lock);
 
-       if (flushed) {
+       if (capsnap) {
                ceph_put_snap_context(capsnap->context);
                ceph_put_cap_snap(capsnap);
                if (wake_ci)