| .. | .. |
|---|
| 3190 | 3190 | struct xfs_btree_block *block; /* btree block */ |
|---|
| 3191 | 3191 | struct xfs_buf *bp; /* buffer for block */ |
|---|
| 3192 | 3192 | 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 */ |
|---|
| 3194 | 3194 | union xfs_btree_key nkey; /* new block key */ |
|---|
| 3195 | 3195 | union xfs_btree_key *lkey; |
|---|
| 3196 | 3196 | int optr; /* old key/record index */ |
|---|
| .. | .. |
|---|
| 3270 | 3270 | #ifdef DEBUG |
|---|
| 3271 | 3271 | error = xfs_btree_check_block(cur, block, level, bp); |
|---|
| 3272 | 3272 | if (error) |
|---|
| 3273 | | - return error; |
|---|
| 3273 | + goto error0; |
|---|
| 3274 | 3274 | #endif |
|---|
| 3275 | 3275 | |
|---|
| 3276 | 3276 | /* |
|---|
| .. | .. |
|---|
| 3290 | 3290 | for (i = numrecs - ptr; i >= 0; i--) { |
|---|
| 3291 | 3291 | error = xfs_btree_debug_check_ptr(cur, pp, i, level); |
|---|
| 3292 | 3292 | if (error) |
|---|
| 3293 | | - return error; |
|---|
| 3293 | + goto error0; |
|---|
| 3294 | 3294 | } |
|---|
| 3295 | 3295 | |
|---|
| 3296 | 3296 | xfs_btree_shift_keys(cur, kp, 1, numrecs - ptr + 1); |
|---|
| .. | .. |
|---|
| 3375 | 3375 | return 0; |
|---|
| 3376 | 3376 | |
|---|
| 3377 | 3377 | error0: |
|---|
| 3378 | + if (ncur) |
|---|
| 3379 | + xfs_btree_del_cursor(ncur, error); |
|---|
| 3378 | 3380 | return error; |
|---|
| 3379 | 3381 | } |
|---|
| 3380 | 3382 | |
|---|