hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/fs/xfs/libxfs/xfs_btree.c
....@@ -3190,7 +3190,7 @@
31903190 struct xfs_btree_block *block; /* btree block */
31913191 struct xfs_buf *bp; /* buffer for block */
31923192 union xfs_btree_ptr nptr; /* new block ptr */
3193
- struct xfs_btree_cur *ncur; /* new btree cursor */
3193
+ struct xfs_btree_cur *ncur = NULL; /* new btree cursor */
31943194 union xfs_btree_key nkey; /* new block key */
31953195 union xfs_btree_key *lkey;
31963196 int optr; /* old key/record index */
....@@ -3270,7 +3270,7 @@
32703270 #ifdef DEBUG
32713271 error = xfs_btree_check_block(cur, block, level, bp);
32723272 if (error)
3273
- return error;
3273
+ goto error0;
32743274 #endif
32753275
32763276 /*
....@@ -3290,7 +3290,7 @@
32903290 for (i = numrecs - ptr; i >= 0; i--) {
32913291 error = xfs_btree_debug_check_ptr(cur, pp, i, level);
32923292 if (error)
3293
- return error;
3293
+ goto error0;
32943294 }
32953295
32963296 xfs_btree_shift_keys(cur, kp, 1, numrecs - ptr + 1);
....@@ -3375,6 +3375,8 @@
33753375 return 0;
33763376
33773377 error0:
3378
+ if (ncur)
3379
+ xfs_btree_del_cursor(ncur, error);
33783380 return error;
33793381 }
33803382