bcachefs: darray_for_each() now declares loop iter
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 17 Dec 2023 02:40:26 +0000 (21:40 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 1 Jan 2024 16:47:42 +0000 (11:47 -0500)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 files changed:
fs/bcachefs/btree_write_buffer.c
fs/bcachefs/darray.h
fs/bcachefs/fs-io-buffered.c
fs/bcachefs/fs.c
fs/bcachefs/fsck.c
fs/bcachefs/io_write.c
fs/bcachefs/move.c
fs/bcachefs/movinggc.c
fs/bcachefs/recovery.c
fs/bcachefs/snapshot.c
fs/bcachefs/snapshot.h
fs/bcachefs/super.c
fs/bcachefs/util.c

index ed5640c4d1a312de135b4b370089ceec90939fa3..6bb5756b5db70da9dfdd6230a18a59407c6e304e 100644 (file)
@@ -246,7 +246,6 @@ static int bch2_btree_write_buffer_flush_locked(struct btree_trans *trans)
        struct bch_fs *c = trans->c;
        struct journal *j = &c->journal;
        struct btree_write_buffer *wb = &c->btree_write_buffer;
-       struct wb_key_ref *i;
        struct btree_iter iter = { NULL };
        size_t skipped = 0, fast = 0, slowpath = 0;
        bool write_locked = false;
@@ -355,7 +354,6 @@ static int bch2_btree_write_buffer_flush_locked(struct btree_trans *trans)
                 */
                trace_and_count(c, write_buffer_flush_slowpath, trans, slowpath, wb->flushing.keys.nr);
 
-               struct btree_write_buffered_key *i;
                darray_for_each(wb->flushing.keys, i) {
                        if (!i->journal_seq)
                                continue;
index e367c625f057c2bf9bfc497f29a28bd5ce2b78b8..c7f153cecde3ca395e72329e29553781778b7d5f 100644 (file)
@@ -81,11 +81,14 @@ static inline int __darray_make_room(darray_char *d, size_t t_size, size_t more,
 #define darray_remove_item(_d, _pos)                                   \
        array_remove_item((_d)->data, (_d)->nr, (_pos) - (_d)->data)
 
+#define __darray_for_each(_d, _i)                                              \
+       for ((_i) = (_d).data; _i < (_d).data + (_d).nr; _i++)
+
 #define darray_for_each(_d, _i)                                                \
-       for (_i = (_d).data; _i < (_d).data + (_d).nr; _i++)
+       for (typeof(&(_d).data[0]) _i = (_d).data; _i < (_d).data + (_d).nr; _i++)
 
 #define darray_for_each_reverse(_d, _i)                                        \
-       for (_i = (_d).data + (_d).nr - 1; _i >= (_d).data; --_i)
+       for (typeof(&(_d).data[0]) _i = (_d).data + (_d).nr - 1; _i >= (_d).data; --_i)
 
 #define darray_init(_d)                                                        \
 do {                                                                   \
index 637a83e4d961bf7b623617421543d9148329ec6e..e48b364db5aeb5015e1546f3175dc3a71723d182 100644 (file)
@@ -52,14 +52,11 @@ struct readpages_iter {
 static int readpages_iter_init(struct readpages_iter *iter,
                               struct readahead_control *ractl)
 {
-       struct folio **fi;
-       int ret;
-
        memset(iter, 0, sizeof(*iter));
 
        iter->mapping = ractl->mapping;
 
-       ret = bch2_filemap_get_contig_folios_d(iter->mapping,
+       int ret = bch2_filemap_get_contig_folios_d(iter->mapping,
                                ractl->_index << PAGE_SHIFT,
                                (ractl->_index + ractl->_nr_pages) << PAGE_SHIFT,
                                0, mapping_gfp_mask(iter->mapping),
@@ -826,7 +823,7 @@ static int __bch2_buffered_write(struct bch_inode_info *inode,
        struct bch_fs *c = inode->v.i_sb->s_fs_info;
        struct bch2_folio_reservation res;
        folios fs;
-       struct folio **fi, *f;
+       struct folio *f;
        unsigned copied = 0, f_offset, f_copied;
        u64 end = pos + len, f_pos, f_len;
        loff_t last_folio_pos = inode->v.i_size;
index 4c35df1230b5a01c2d0e465fcb8b854122a43b0c..943b4e5e47259e87a9ef9e7c61cc12f96ed608ee 100644 (file)
@@ -1498,7 +1498,7 @@ static void bch2_evict_inode(struct inode *vinode)
 
 void bch2_evict_subvolume_inodes(struct bch_fs *c, snapshot_id_list *s)
 {
-       struct bch_inode_info *inode, **i;
+       struct bch_inode_info *inode;
        DARRAY(struct bch_inode_info *) grabbed;
        bool clean_pass = false, this_pass_clean;
 
index 43801e29bc5abe5c2c3ca5e92ae4a9d9f98153bd..52438f86530f977d86ee13f3c806a1aa6e3b9bfd 100644 (file)
@@ -398,7 +398,7 @@ static int snapshots_seen_add_inorder(struct bch_fs *c, struct snapshots_seen *s
        };
        int ret = 0;
 
-       darray_for_each(s->ids, i) {
+       __darray_for_each(s->ids, i) {
                if (i->id == id)
                        return 0;
                if (i->id > id)
@@ -415,7 +415,7 @@ static int snapshots_seen_add_inorder(struct bch_fs *c, struct snapshots_seen *s
 static int snapshots_seen_update(struct bch_fs *c, struct snapshots_seen *s,
                                 enum btree_id btree_id, struct bpos pos)
 {
-       struct snapshots_seen_entry *i, n = {
+       struct snapshots_seen_entry n = {
                .id     = pos.snapshot,
                .equiv  = bch2_snapshot_equiv(c, pos.snapshot),
        };
@@ -616,7 +616,7 @@ lookup_inode_for_snapshot(struct bch_fs *c, struct inode_walker *w,
 
        snapshot = bch2_snapshot_equiv(c, snapshot);
 
-       darray_for_each(w->inodes, i)
+       __darray_for_each(w->inodes, i)
                if (bch2_snapshot_is_ancestor(c, snapshot, i->snapshot))
                        goto found;
 
@@ -658,11 +658,8 @@ static struct inode_walker_entry *walk_inode(struct btree_trans *trans,
                if (ret)
                        return ERR_PTR(ret);
        } else if (bkey_cmp(w->last_pos, pos)) {
-               struct inode_walker_entry *i;
-
                darray_for_each(w->inodes, i)
                        i->seen_this_pos = false;
-
        }
 
        w->last_pos = pos;
@@ -1032,7 +1029,6 @@ static bool dirent_points_to_inode(struct bkey_s_c_dirent d,
 static int check_i_sectors(struct btree_trans *trans, struct inode_walker *w)
 {
        struct bch_fs *c = trans->c;
-       struct inode_walker_entry *i;
        u32 restart_count = trans->restart_count;
        int ret = 0;
        s64 count2;
@@ -1081,11 +1077,8 @@ struct extent_ends {
 
 static void extent_ends_reset(struct extent_ends *extent_ends)
 {
-       struct extent_end *i;
-
        darray_for_each(extent_ends->e, i)
                snapshots_seen_exit(&i->seen);
-
        extent_ends->e.nr = 0;
 }
 
@@ -1117,7 +1110,7 @@ static int extent_ends_at(struct bch_fs *c,
        if (!n.seen.ids.data)
                return -BCH_ERR_ENOMEM_fsck_extent_ends_at;
 
-       darray_for_each(extent_ends->e, i) {
+       __darray_for_each(extent_ends->e, i) {
                if (i->snapshot == k.k->p.snapshot) {
                        snapshots_seen_exit(&i->seen);
                        *i = n;
@@ -1256,7 +1249,6 @@ static int check_overlapping_extents(struct btree_trans *trans,
                              bool *fixed)
 {
        struct bch_fs *c = trans->c;
-       struct extent_end *i;
        int ret = 0;
 
        /* transaction restart, running again */
@@ -1495,7 +1487,6 @@ int bch2_check_indirect_extents(struct bch_fs *c)
 static int check_subdir_count(struct btree_trans *trans, struct inode_walker *w)
 {
        struct bch_fs *c = trans->c;
-       struct inode_walker_entry *i;
        u32 restart_count = trans->restart_count;
        int ret = 0;
        s64 count2;
@@ -1992,13 +1983,10 @@ typedef DARRAY(struct pathbuf_entry) pathbuf;
 
 static bool path_is_dup(pathbuf *p, u64 inum, u32 snapshot)
 {
-       struct pathbuf_entry *i;
-
        darray_for_each(*p, i)
                if (i->inum     == inum &&
                    i->snapshot == snapshot)
                        return true;
-
        return false;
 }
 
@@ -2092,8 +2080,6 @@ static int check_path(struct btree_trans *trans,
                }
 
                if (path_is_dup(p, inode->bi_inum, snapshot)) {
-                       struct pathbuf_entry *i;
-
                        /* XXX print path */
                        bch_err(c, "directory structure loop");
 
index 2817f27909b314b3366657a476295ab682475057..d8306c190150142d7da92bb354c871e55736ce56 100644 (file)
@@ -1230,7 +1230,6 @@ static void bch2_nocow_write(struct bch_write_op *op)
        struct bkey_ptrs_c ptrs;
        const struct bch_extent_ptr *ptr;
        DARRAY_PREALLOCATED(struct bucket_to_lock, 3) buckets;
-       struct bucket_to_lock *i;
        u32 snapshot;
        struct bucket_to_lock *stale_at;
        int ret;
index b1b9566c7a6186229a0c2f021a71ad522d16e298..106d95623cc8111658aea179327e33d0d80cbb21 100644 (file)
@@ -400,12 +400,10 @@ struct bch_io_opts *bch2_move_get_io_opts(struct btree_trans *trans,
        if (ret)
                return ERR_PTR(ret);
 
-       if (extent_k.k->p.snapshot) {
-               struct snapshot_io_opts_entry *i;
+       if (extent_k.k->p.snapshot)
                darray_for_each(io_opts->d, i)
                        if (bch2_snapshot_is_ancestor(c, extent_k.k->p.snapshot, i->snapshot))
                                return &i->io_opts;
-       }
 
        return &io_opts->fs_io_opts;
 }
index 963191a2f4e0f3d28276acd9099b2ec045b94221..abe925e705a4211b913a5bd08447231193f19fd0 100644 (file)
@@ -209,7 +209,6 @@ static int bch2_copygc(struct moving_context *ctxt,
        };
        move_buckets buckets = { 0 };
        struct move_bucket_in_flight *f;
-       struct move_bucket *i;
        u64 moved = atomic64_read(&ctxt->stats->sectors_moved);
        int ret = 0;
 
index 3b84c4ab2c4f8afa20bc4463913bb908a4686759..d54e8dff99d47a9ceba0505b4d220da17f711ceb 100644 (file)
@@ -146,7 +146,6 @@ static int bch2_journal_replay(struct bch_fs *c)
 {
        struct journal_keys *keys = &c->journal_keys;
        DARRAY(struct journal_key *) keys_sorted = { 0 };
-       struct journal_key **kp;
        struct journal *j = &c->journal;
        u64 start_seq   = c->journal_replay_seq_start;
        u64 end_seq     = c->journal_replay_seq_start;
index b0ef415914dcefa041c022874245f6713e6b921a..f5f1d7797533dc828b280430ddeffbe3af81e1d8 100644 (file)
@@ -1311,7 +1311,6 @@ static int bch2_fix_child_of_deleted_snapshot(struct btree_trans *trans,
        struct bch_fs *c = trans->c;
        u32 nr_deleted_ancestors = 0;
        struct bkey_i_snapshot *s;
-       u32 *i;
        int ret;
 
        if (k.k->type != KEY_TYPE_snapshot)
@@ -1369,7 +1368,7 @@ int bch2_delete_dead_snapshots(struct bch_fs *c)
        struct bkey_s_c_snapshot snap;
        snapshot_id_list deleted = { 0 };
        snapshot_id_list deleted_interior = { 0 };
-       u32 *i, id;
+       u32 id;
        int ret = 0;
 
        if (!test_and_clear_bit(BCH_FS_need_delete_dead_snapshots, &c->flags))
index f09a22f4423969024ea29224340f6a1a528d2821..94f35b2cfbb3427ca83ab6d5b423ab9b640bed99 100644 (file)
@@ -202,8 +202,6 @@ static inline bool bch2_snapshot_has_children(struct bch_fs *c, u32 id)
 
 static inline bool snapshot_list_has_id(snapshot_id_list *s, u32 id)
 {
-       u32 *i;
-
        darray_for_each(*s, i)
                if (*i == id)
                        return true;
@@ -212,8 +210,6 @@ static inline bool snapshot_list_has_id(snapshot_id_list *s, u32 id)
 
 static inline bool snapshot_list_has_ancestor(struct bch_fs *c, snapshot_id_list *s, u32 id)
 {
-       u32 *i;
-
        darray_for_each(*s, i)
                if (bch2_snapshot_is_ancestor(c, id, *i))
                        return true;
index c04d425c872fa66fb7d89fe60bf9ea9d6da9d2cb..5cc09b4b50af8edfd4cd86f3d8ea0c3fbf7a069e 100644 (file)
@@ -1937,7 +1937,7 @@ struct bch_fs *bch2_fs_open(char * const *devices, unsigned nr_devices,
 {
        DARRAY(struct bch_sb_handle) sbs = { 0 };
        struct bch_fs *c = NULL;
-       struct bch_sb_handle *sb, *best = NULL;
+       struct bch_sb_handle *best = NULL;
        struct printbuf errbuf = PRINTBUF;
        int ret = 0;
 
index e85b1f4672952b2839e073c4516ffd6472f3b877..00ddd91ddfcc8eecc920114bdd3290d3ffa913e0 100644 (file)
@@ -297,8 +297,6 @@ int bch2_save_backtrace(bch_stacktrace *stack, struct task_struct *task)
 
 void bch2_prt_backtrace(struct printbuf *out, bch_stacktrace *stack)
 {
-       unsigned long *i;
-
        darray_for_each(*stack, i) {
                prt_printf(out, "[<0>] %pB", (void *) *i);
                prt_newline(out);