Lines Matching refs:sm
157 if (error == 0 && (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR)) in xchk_teardown()
362 struct xfs_scrub_metadata *sm) in xchk_validate_inputs() argument
369 sm->sm_flags &= ~XFS_SCRUB_FLAGS_OUT; in xchk_validate_inputs()
370 if (sm->sm_flags & ~XFS_SCRUB_FLAGS_IN) in xchk_validate_inputs()
373 if (memchr_inv(sm->sm_reserved, 0, sizeof(sm->sm_reserved))) in xchk_validate_inputs()
378 if (sm->sm_type >= XFS_SCRUB_TYPE_NR) in xchk_validate_inputs()
380 ops = &meta_scrub_ops[sm->sm_type]; in xchk_validate_inputs()
392 if (sm->sm_ino || sm->sm_gen || sm->sm_agno) in xchk_validate_inputs()
396 if (sm->sm_ino || sm->sm_gen || in xchk_validate_inputs()
397 sm->sm_agno >= mp->m_sb.sb_agcount) in xchk_validate_inputs()
401 if (sm->sm_agno || (sm->sm_gen && !sm->sm_ino)) in xchk_validate_inputs()
414 if (sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR) { in xchk_validate_inputs()
437 if ((sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR) && in xchk_postmortem()
438 (sc->sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT | in xchk_postmortem()
449 if (sc->sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT | in xchk_postmortem()
460 struct xfs_scrub_metadata *sm) in xfs_scrub_metadata() argument
464 .sm = sm, in xfs_scrub_metadata()
475 trace_xchk_start(ip, sm, error); in xfs_scrub_metadata()
485 error = xchk_validate_inputs(mp, sm); in xfs_scrub_metadata()
491 sc.ops = &meta_scrub_ops[sm->sm_type]; in xfs_scrub_metadata()
492 sc.sick_mask = xchk_health_mask_for_scrub_type(sm->sm_type); in xfs_scrub_metadata()
525 if ((sc.sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR) && in xfs_scrub_metadata()
531 sc.sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; in xfs_scrub_metadata()
533 needs_fix = (sc.sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT | in xfs_scrub_metadata()
541 sc.sm->sm_flags |= XFS_SCRUB_OFLAG_NO_REPAIR_NEEDED; in xfs_scrub_metadata()
570 trace_xchk_done(ip, sm, error); in xfs_scrub_metadata()
572 sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; in xfs_scrub_metadata()