From: Hongchao Zhang Date: Wed, 30 Jun 2021 11:15:03 +0000 (+0800) Subject: LU-14831 osd-ldiskfs: uninited osd_inode_id is used X-Git-Tag: 2.14.56~140 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=9cf4dddd52815835b4deb7468009adcbd7624dcf LU-14831 osd-ldiskfs: uninited osd_inode_id is used In osd_fid_lookup, the "osd_inode_id" could be used uninitializedly if the FID doesn't exist in OI, which cause some faked FID/inode pair to be inserted into OI file and the OI scrub thread could be triggered repeatedly. Change-Id: I9100dece9e94d3e590f17fb4498601876aa1edaa Signed-off-by: Hongchao Zhang Reviewed-by: Andreas Dilger Reviewed-on: https://review.whamcloud.com/44349 Tested-by: jenkins Reviewed-by: Li Dongyang Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index 2bfd3b5..1b94f32 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -1158,6 +1158,7 @@ static int osd_fid_lookup(const struct lu_env *env, struct osd_object *obj, } id = &info->oti_id; + memset(id, 0, sizeof(struct osd_inode_id)); if (!list_empty(&scrub->os_inconsistent_items)) { /* Search order: 2. OI scrub pending list. */ result = osd_oii_lookup(dev, fid, id);