From 25cde5b5b0dbedfba5227752169313004ebbcd35 Mon Sep 17 00:00:00 2001 From: Alexander Boyko Date: Wed, 18 Jul 2018 10:17:16 -0400 Subject: [PATCH] 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. Lustre-change: https://review.whamcloud.com/32829 Lustre-commit: d01fc74e8a347a0c8ebfcf92a49c7f71809cd0ad Signed-off-by: Alexander Boyko Cray-bug-id: LUS-6197 Change-Id: I38c347377a1c648ac3dd3e3ff4c4d65ee34cde39 Reviewed-by: Andreas Dilger Reviewed-by: Wang Shilong Signed-off-by: Minh Diep Reviewed-on: https://review.whamcloud.com/33971 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/osd-ldiskfs/osd_scrub.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lustre/osd-ldiskfs/osd_scrub.c b/lustre/osd-ldiskfs/osd_scrub.c index 8f8d06a..5d7a130 100644 --- a/lustre/osd-ldiskfs/osd_scrub.c +++ b/lustre/osd-ldiskfs/osd_scrub.c @@ -966,6 +966,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)) { -- 1.8.3.1