Lines Matching full:sc
41 struct xfs_scrub *sc, in xchk_setup_inode() argument
50 error = xchk_get_inode(sc, ip); in xchk_setup_inode()
56 return xchk_trans_alloc(sc, 0); in xchk_setup_inode()
62 sc->ilock_flags = XFS_IOLOCK_EXCL | XFS_MMAPLOCK_EXCL; in xchk_setup_inode()
63 xfs_ilock(sc->ip, sc->ilock_flags); in xchk_setup_inode()
64 error = xchk_trans_alloc(sc, 0); in xchk_setup_inode()
67 sc->ilock_flags |= XFS_ILOCK_EXCL; in xchk_setup_inode()
68 xfs_ilock(sc->ip, XFS_ILOCK_EXCL); in xchk_setup_inode()
80 struct xfs_scrub *sc, in xchk_inode_extsize() argument
88 fa = xfs_inode_validate_extsize(sc->mp, be32_to_cpu(dip->di_extsize), in xchk_inode_extsize()
91 xchk_ino_set_corrupt(sc, ino); in xchk_inode_extsize()
102 struct xfs_scrub *sc, in xchk_inode_cowextsize() argument
111 fa = xfs_inode_validate_cowextsize(sc->mp, in xchk_inode_cowextsize()
115 xchk_ino_set_corrupt(sc, ino); in xchk_inode_cowextsize()
121 struct xfs_scrub *sc, in xchk_inode_flags() argument
127 struct xfs_mount *mp = sc->mp; in xchk_inode_flags()
161 xchk_ino_set_corrupt(sc, ino); in xchk_inode_flags()
167 struct xfs_scrub *sc, in xchk_inode_flags2() argument
174 struct xfs_mount *mp = sc->mp; in xchk_inode_flags2()
178 xchk_ino_set_warning(sc, ino); in xchk_inode_flags2()
205 xchk_ino_set_corrupt(sc, ino); in xchk_inode_flags2()
211 struct xfs_scrub *sc, in xchk_dinode() argument
215 struct xfs_mount *mp = sc->mp; in xchk_dinode()
242 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
253 xchk_ino_set_preen(sc, ino); in xchk_dinode()
258 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
260 if (dip->di_mode == 0 && sc->ip) in xchk_dinode()
261 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
265 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
268 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
278 xchk_ino_set_warning(sc, ino); in xchk_dinode()
285 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
289 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
293 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
297 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
301 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
307 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
309 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
311 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
320 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
324 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
328 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
332 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
341 xchk_ino_set_warning(sc, ino); in xchk_dinode()
356 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
359 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
362 xchk_inode_flags(sc, dip, ino, mode, flags); in xchk_dinode()
364 xchk_inode_extsize(sc, dip, ino, mode, flags); in xchk_dinode()
372 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
376 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
380 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
386 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
388 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
390 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
396 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
404 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
408 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
412 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
417 xchk_ino_set_corrupt(sc, ino); in xchk_dinode()
418 xchk_inode_flags2(sc, dip, ino, mode, flags, flags2); in xchk_dinode()
419 xchk_inode_cowextsize(sc, dip, ino, mode, flags, in xchk_dinode()
431 struct xfs_scrub *sc, in xchk_inode_xref_finobt() argument
439 if (!sc->sa.fino_cur || xchk_skip_xref(sc->sm)) in xchk_inode_xref_finobt()
442 agino = XFS_INO_TO_AGINO(sc->mp, ino); in xchk_inode_xref_finobt()
448 error = xfs_inobt_lookup(sc->sa.fino_cur, agino, XFS_LOOKUP_LE, in xchk_inode_xref_finobt()
450 if (!xchk_should_check_xref(sc, &error, &sc->sa.fino_cur) || in xchk_inode_xref_finobt()
454 error = xfs_inobt_get_rec(sc->sa.fino_cur, &rec, &has_record); in xchk_inode_xref_finobt()
455 if (!xchk_should_check_xref(sc, &error, &sc->sa.fino_cur) || in xchk_inode_xref_finobt()
468 xchk_btree_xref_set_corrupt(sc, sc->sa.fino_cur, 0); in xchk_inode_xref_finobt()
474 struct xfs_scrub *sc, in xchk_inode_xref_bmap() argument
482 if (xchk_skip_xref(sc->sm)) in xchk_inode_xref_bmap()
486 error = xfs_bmap_count_blocks(sc->tp, sc->ip, XFS_DATA_FORK, in xchk_inode_xref_bmap()
488 if (!xchk_should_check_xref(sc, &error, NULL)) in xchk_inode_xref_bmap()
491 xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino); in xchk_inode_xref_bmap()
493 error = xfs_bmap_count_blocks(sc->tp, sc->ip, XFS_ATTR_FORK, in xchk_inode_xref_bmap()
495 if (!xchk_should_check_xref(sc, &error, NULL)) in xchk_inode_xref_bmap()
498 xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino); in xchk_inode_xref_bmap()
502 xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino); in xchk_inode_xref_bmap()
508 struct xfs_scrub *sc, in xchk_inode_xref() argument
517 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT) in xchk_inode_xref()
520 agno = XFS_INO_TO_AGNO(sc->mp, ino); in xchk_inode_xref()
521 agbno = XFS_INO_TO_AGBNO(sc->mp, ino); in xchk_inode_xref()
523 error = xchk_ag_init(sc, agno, &sc->sa); in xchk_inode_xref()
524 if (!xchk_xref_process_error(sc, agno, agbno, &error)) in xchk_inode_xref()
527 xchk_xref_is_used_space(sc, agbno, 1); in xchk_inode_xref()
528 xchk_inode_xref_finobt(sc, ino); in xchk_inode_xref()
530 xchk_xref_is_owned_by(sc, agbno, 1, &oinfo); in xchk_inode_xref()
531 xchk_xref_is_not_shared(sc, agbno, 1); in xchk_inode_xref()
532 xchk_inode_xref_bmap(sc, dip); in xchk_inode_xref()
534 xchk_ag_free(sc, &sc->sa); in xchk_inode_xref()
545 struct xfs_scrub *sc, in xchk_inode_check_reflink_iflag() argument
548 struct xfs_mount *mp = sc->mp; in xchk_inode_check_reflink_iflag()
555 error = xfs_reflink_inode_has_shared_extents(sc->tp, sc->ip, in xchk_inode_check_reflink_iflag()
557 if (!xchk_xref_process_error(sc, XFS_INO_TO_AGNO(mp, ino), in xchk_inode_check_reflink_iflag()
560 if (xfs_is_reflink_inode(sc->ip) && !has_shared) in xchk_inode_check_reflink_iflag()
561 xchk_ino_set_preen(sc, ino); in xchk_inode_check_reflink_iflag()
562 else if (!xfs_is_reflink_inode(sc->ip) && has_shared) in xchk_inode_check_reflink_iflag()
563 xchk_ino_set_corrupt(sc, ino); in xchk_inode_check_reflink_iflag()
569 struct xfs_scrub *sc) in xchk_inode() argument
575 * If sc->ip is NULL, that means that the setup function called in xchk_inode()
579 if (!sc->ip) { in xchk_inode()
580 xchk_ino_set_corrupt(sc, sc->sm->sm_ino); in xchk_inode()
585 xfs_inode_to_disk(sc->ip, &di, 0); in xchk_inode()
586 xchk_dinode(sc, &di, sc->ip->i_ino); in xchk_inode()
587 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT) in xchk_inode()
595 if (S_ISREG(VFS_I(sc->ip)->i_mode)) in xchk_inode()
596 xchk_inode_check_reflink_iflag(sc, sc->ip->i_ino); in xchk_inode()
598 xchk_inode_xref(sc, sc->ip->i_ino, &di); in xchk_inode()