From: Alexander Boyko Date: Wed, 18 Jul 2018 14:17:16 +0000 (-0400) Subject: LU-11156 scrub: skip project quota inode X-Git-Tag: 2.11.54~16 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=d01fc74e8a347a0c8ebfcf92a49c7f71809cd0ad LU-11156 scrub: skip project quota inode Error happened when scrub try to process project quota inode. Scrub thinks that it is IGIF, because it has no lma fid. And it starts to create O/inum/{LAST_ID,d0-d31}, and fails with not enough credits. The project quota inode s_prj_quota_inum should be skipped from scrub iteration. Signed-off-by: Alexander Boyko Cray-bug-id: LUS-6197 Change-Id: I38c347377a1c648ac3dd3e3ff4c4d65ee34cde39 Reviewed-on: https://review.whamcloud.com/32829 Reviewed-by: Andreas Dilger Reviewed-by: Wang Shilong Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/osd-ldiskfs/osd_scrub.c b/lustre/osd-ldiskfs/osd_scrub.c index 22a7277..6c47f8d 100644 --- a/lustre/osd-ldiskfs/osd_scrub.c +++ b/lustre/osd-ldiskfs/osd_scrub.c @@ -733,6 +733,13 @@ static int osd_iit_iget(struct osd_thread_info *info, struct osd_device *dev, is_remote_parent_ino(dev, pos))) RETURN(SCRUB_NEXT_CONTINUE); + /* Skip project quota inode since it is greater than s_first_ino. */ +#ifdef HAVE_PROJECT_QUOTA + if (ldiskfs_has_feature_project(sb) && + pos == le32_to_cpu(LDISKFS_SB(sb)->s_es->s_prj_quota_inum)) + RETURN(SCRUB_NEXT_CONTINUE); +#endif + osd_id_gen(lid, pos, OSD_OII_NOGEN); inode = osd_iget(info, dev, lid); if (IS_ERR(inode)) {