···24782478 * This could return negative error code if something goes wrong24792479 * during ext4_mb_init_group(). This should not be called with24802480 * ext4_lock_group() held.24812481+ *24822482+ * Note: because we are conditionally operating with the group lock in24832483+ * the EXT4_MB_STRICT_CHECK case, we need to fake out sparse in this24842484+ * function using __acquire and __release. This means we need to be24852485+ * super careful before messing with the error path handling via "goto24862486+ * out"!24812487 */24822488static int ext4_mb_good_group_nolock(struct ext4_allocation_context *ac,24832489 ext4_group_t group, int cr)···2497249124982492 if (sbi->s_mb_stats)24992493 atomic64_inc(&sbi->s_bal_cX_groups_considered[ac->ac_criteria]);25002500- if (should_lock)24942494+ if (should_lock) {25012495 ext4_lock_group(sb, group);24962496+ __release(ext4_group_lock_ptr(sb, group));24972497+ }25022498 free = grp->bb_free;25032499 if (free == 0)25042500 goto out;···25082500 goto out;25092501 if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(grp)))25102502 goto out;25112511- if (should_lock)25032503+ if (should_lock) {25042504+ __acquire(ext4_group_lock_ptr(sb, group));25122505 ext4_unlock_group(sb, group);25062506+ }2513250725142508 /* We only do this if the grp has never been initialized */25152509 if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) {···25382528 return ret;25392529 }2540253025412541- if (should_lock)25312531+ if (should_lock) {25422532 ext4_lock_group(sb, group);25332533+ __release(ext4_group_lock_ptr(sb, group));25342534+ }25432535 ret = ext4_mb_good_group(ac, group, cr);25442536out:25452545- if (should_lock)25372537+ if (should_lock) {25382538+ __acquire(ext4_group_lock_ptr(sb, group));25462539 ext4_unlock_group(sb, group);25402540+ }25472541 return ret;25482542}25492543···29832969}2984297029852971static void *ext4_mb_seq_structs_summary_start(struct seq_file *seq, loff_t *pos)29722972+__acquires(&EXT4_SB(sb)->s_mb_rb_lock)29862973{29872974 struct super_block *sb = PDE_DATA(file_inode(seq->file));29882975 unsigned long position;···30563041}3057304230583043static void ext4_mb_seq_structs_summary_stop(struct seq_file *seq, void *v)30443044+__releases(&EXT4_SB(sb)->s_mb_rb_lock)30593045{30603046 struct super_block *sb = PDE_DATA(file_inode(seq->file));30613047···62916275static int ext4_try_to_trim_range(struct super_block *sb,62926276 struct ext4_buddy *e4b, ext4_grpblk_t start,62936277 ext4_grpblk_t max, ext4_grpblk_t minblocks)62786278+__acquires(ext4_group_lock_ptr(sb, e4b->bd_group))62796279+__releases(ext4_group_lock_ptr(sb, e4b->bd_group))62946280{62956281 ext4_grpblk_t next, count, free_count;62966282 void *bitmap;