Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Lustre 2.15.0
-
None
-
3
-
9223372036854775807
Description
it looks like osd_inode_iteration and all around code in osd-ldiskfs/osd_scrub.c is incorrect
osd_inode_iteration:
param->bitmap = ldiskfs_read_inode_bitmap(param->sb, param->bg); if (!param->bitmap) { CERROR("%s: fail to read bitmap for %u, " "scrub will stop, urgent mode\n", osd_scrub2name(scrub), (__u32)param->bg); RETURN(-EIO); }
But the comment in ldiskfs_read_inode_bitmap() is incorrect:
* Return buffer_head of bitmap on success or NULL. */ struct buffer_head * ldiskfs_read_inode_bitmap(struct super_block *sb, ldiskfs_group_t block_group) { struct ldiskfs_group_desc *desc; struct ldiskfs_sb_info *sbi = LDISKFS_SB(sb); struct buffer_head *bh = NULL; ldiskfs_fsblk_t bitmap_blk; int err; desc = ldiskfs_get_group_desc(sb, block_group, NULL); if (!desc) return ERR_PTR(-EFSCORRUPTED); ... return ERR_PTR(-EIO);
and so on.
this is not the case in centos7, but on rhel8 is already affected