|
@@ -9443,6 +9443,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
|
|
u64 new_idx = 0;
|
|
u64 new_idx = 0;
|
|
u64 root_objectid;
|
|
u64 root_objectid;
|
|
int ret;
|
|
int ret;
|
|
|
|
+ int ret2;
|
|
bool root_log_pinned = false;
|
|
bool root_log_pinned = false;
|
|
bool dest_log_pinned = false;
|
|
bool dest_log_pinned = false;
|
|
|
|
|
|
@@ -9639,7 +9640,8 @@ out_fail:
|
|
dest_log_pinned = false;
|
|
dest_log_pinned = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- ret = btrfs_end_transaction(trans);
|
|
|
|
|
|
+ ret2 = btrfs_end_transaction(trans);
|
|
|
|
+ ret = ret ? ret : ret2;
|
|
out_notrans:
|
|
out_notrans:
|
|
if (new_ino == BTRFS_FIRST_FREE_OBJECTID)
|
|
if (new_ino == BTRFS_FIRST_FREE_OBJECTID)
|
|
up_read(&fs_info->subvol_sem);
|
|
up_read(&fs_info->subvol_sem);
|