if (ret) {
mutex_unlock(
&fs_info->fs_devices->device_list_mutex);
- btrfs_handle_fs_error(fs_info, ret,
- "errors while submitting device barriers.");
+ btrfs_abort_transaction(trans, ret);
+ btrfs_err(fs_info, "error while submitting device barriers");
return ret;
}
}
ret = btrfs_validate_write_super(fs_info, sb);
if (unlikely(ret < 0)) {
mutex_unlock(&fs_info->fs_devices->device_list_mutex);
- btrfs_handle_fs_error(fs_info, -EUCLEAN,
- "unexpected superblock corruption detected");
- return -EUCLEAN;
+ btrfs_abort_transaction(trans, ret);
+ btrfs_err(fs_info,
+ "unexpected superblock corruption before writing it");
+ return ret;
}
ret = write_dev_supers(dev, sb, max_mirrors);
mutex_unlock(&fs_info->fs_devices->device_list_mutex);
/* FUA is masked off if unsupported and can't be the reason */
- btrfs_handle_fs_error(fs_info, -EIO,
- "%d errors while writing supers",
- total_errors);
+ btrfs_abort_transaction(trans, -EIO);
+ btrfs_err(fs_info, "%d errors while writing supers", total_errors);
return -EIO;
}
}
mutex_unlock(&fs_info->fs_devices->device_list_mutex);
if (unlikely(total_errors > max_errors)) {
- btrfs_handle_fs_error(fs_info, -EIO,
- "%d errors while writing supers",
- total_errors);
+ btrfs_abort_transaction(trans, -EIO);
+ btrfs_err(fs_info, "%d errors while writing supers", total_errors);
return -EIO;
}
return 0;