summaryrefslogtreecommitdiff
path: root/fs/bcachefs/fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/bcachefs/fs.c')
-rw-r--r--fs/bcachefs/fs.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c
index 3b0783f117ae..00172b7be889 100644
--- a/fs/bcachefs/fs.c
+++ b/fs/bcachefs/fs.c
@@ -1010,9 +1010,17 @@ err_tx_restart:
goto err;
}
- BUG_ON(src_inode->v.i_ino != src_inode_u.bi_inum);
- BUG_ON(dst_inode &&
- dst_inode->v.i_ino != dst_inode_u.bi_inum);
+ if ((src_inode->v.i_ino != src_inode_u.bi_inum) ||
+ (dst_inode &&
+ dst_inode->v.i_ino != dst_inode_u.bi_inum))
+ bch2_fs_inconsistent(c, "bad rename: src inum %llu:%llu != %llu or dst %llu:%llu != %llu",
+ src_inode->ei_inum.subvol,
+ src_inode->ei_inum.inum,
+ src_inode_u.bi_inum,
+
+ dst_inode ? dst_inode->ei_inum.subvol : 0,
+ dst_inode ? dst_inode->ei_inum.inum : 0,
+ dst_inode ? dst_inode_u.bi_inum : 0);
bch2_inode_update_after_write(trans, src_dir, &src_dir_u,
ATTR_MTIME|ATTR_CTIME|ATTR_SIZE);