void e2fsck_hide_quota(e2fsck_t ctx) { struct ext2_super_block *sb = ctx->fs->super; struct problem_context pctx; ext2_filsys fs = ctx->fs; clear_problem_context(&pctx); if ((ctx->options & E2F_OPT_READONLY) || !(sb->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_QUOTA)) return; pctx.ino = sb->s_usr_quota_inum; if (sb->s_usr_quota_inum && (sb->s_usr_quota_inum != EXT4_USR_QUOTA_INO) && fix_problem(ctx, PR_0_HIDE_QUOTA, &pctx)) { move_quota_inode(fs, sb->s_usr_quota_inum, EXT4_USR_QUOTA_INO, USRQUOTA); sb->s_usr_quota_inum = EXT4_USR_QUOTA_INO; } pctx.ino = sb->s_grp_quota_inum; if (sb->s_grp_quota_inum && (sb->s_grp_quota_inum != EXT4_GRP_QUOTA_INO) && fix_problem(ctx, PR_0_HIDE_QUOTA, &pctx)) { move_quota_inode(fs, sb->s_grp_quota_inum, EXT4_GRP_QUOTA_INO, GRPQUOTA); sb->s_grp_quota_inum = EXT4_GRP_QUOTA_INO; } return; }
void e2fsck_hide_quota(e2fsck_t ctx) { struct ext2_super_block *sb = ctx->fs->super; struct problem_context pctx; ext2_filsys fs = ctx->fs; enum quota_type qtype; ext2_ino_t quota_ino; clear_problem_context(&pctx); if ((ctx->options & E2F_OPT_READONLY) || !ext2fs_has_feature_quota(sb)) return; for (qtype = 0; qtype < MAXQUOTAS; qtype++) { pctx.ino = *quota_sb_inump(sb, qtype); quota_ino = quota_type2inum(qtype, fs->super); if (pctx.ino && (pctx.ino != quota_ino) && fix_problem(ctx, PR_0_HIDE_QUOTA, &pctx)) { move_quota_inode(fs, pctx.ino, quota_ino, qtype); *quota_sb_inump(sb, qtype) = quota_ino; } } return; }