int ret;
ret = btrfs_validate_super(fs_info, sb, -1);
- if (ret < 0)
+ if (unlikely(ret < 0))
goto out;
if (unlikely(!btrfs_supported_super_csum(btrfs_super_csum_type(sb)))) {
ret = -EUCLEAN;
goto out;
}
out:
- if (ret < 0)
+ if (unlikely(ret < 0))
btrfs_err(fs_info,
"super block corruption detected before writing it to disk");
return ret;
ret = btrfs_sb_log_location(device, i, READ, &bytenr);
if (ret == -ENOENT) {
break;
- } else if (ret < 0) {
+ } else if (unlikely(ret < 0)) {
errors++;
if (i == 0)
primary_failed = true;
}
errors += atomic_read(&device->sb_write_errors);
- if (errors >= BTRFS_SUPER_PRIMARY_WRITE_ERROR)
- primary_failed = true;
- if (primary_failed) {
+
+ if (unlikely(primary_failed || errors >= BTRFS_SUPER_PRIMARY_WRITE_ERROR)) {
btrfs_err(device->fs_info, "error writing primary super block to device %llu",
device->devid);
return -1;
wait_for_completion_io(&device->flush_wait);
- if (bio->bi_status) {
+ if (unlikely(bio->bi_status)) {
set_bit(BTRFS_DEV_STATE_FLUSH_FAILED, &device->dev_state);
btrfs_dev_stat_inc_and_print(device, BTRFS_DEV_STAT_FLUSH_ERRS);
return true;
list_for_each_entry(dev, head, dev_list) {
if (test_bit(BTRFS_DEV_STATE_MISSING, &dev->dev_state))
continue;
- if (!dev->bdev) {
+ if (unlikely(!dev->bdev)) {
errors_wait++;
continue;
}
!test_bit(BTRFS_DEV_STATE_WRITEABLE, &dev->dev_state))
continue;
- if (wait_dev_flush(dev))
+ if (unlikely(wait_dev_flush(dev)))
errors_wait++;
}
if (do_barriers) {
ret = barrier_all_devices(fs_info);
- if (ret) {
+ if (unlikely(ret)) {
mutex_unlock(
&fs_info->fs_devices->device_list_mutex);
btrfs_abort_transaction(trans, ret);
}
list_for_each_entry(dev, head, dev_list) {
- if (!dev->bdev) {
+ if (unlikely(!dev->bdev)) {
total_errors++;
continue;
}
}
ret = write_dev_supers(dev, sb, max_mirrors);
- if (ret)
+ if (unlikely(ret))
total_errors++;
}
if (unlikely(total_errors > max_errors)) {
total_errors = 0;
list_for_each_entry(dev, head, dev_list) {
- if (!dev->bdev)
+ if (unlikely(!dev->bdev))
continue;
if (!test_bit(BTRFS_DEV_STATE_IN_FS_METADATA, &dev->dev_state) ||
!test_bit(BTRFS_DEV_STATE_WRITEABLE, &dev->dev_state))
continue;
ret = wait_dev_supers(dev, max_mirrors);
- if (ret)
+ if (unlikely(ret))
total_errors++;
}
mutex_unlock(&fs_info->fs_devices->device_list_mutex);