|
@@ -3193,9 +3193,12 @@ static void free_log_tree(struct btrfs_trans_handle *trans,
|
|
|
};
|
|
|
|
|
|
ret = walk_log_tree(trans, log, &wc);
|
|
|
- /* I don't think this can happen but just in case */
|
|
|
- if (ret)
|
|
|
- btrfs_abort_transaction(trans, ret);
|
|
|
+ if (ret) {
|
|
|
+ if (trans)
|
|
|
+ btrfs_abort_transaction(trans, ret);
|
|
|
+ else
|
|
|
+ btrfs_handle_fs_error(log->fs_info, ret, NULL);
|
|
|
+ }
|
|
|
|
|
|
while (1) {
|
|
|
ret = find_first_extent_bit(&log->dirty_log_pages,
|