Lines Matching refs:idesc
217 ckinode(struct dinode *dp, struct inodesc *idesc, enum cki_action action) in ckinode() argument
222 if (idesc->id_filesize == 0) in ckinode()
223 idesc->id_filesize = (offset_t)dp->di_size; in ckinode()
238 idesc->id_number); in ckinode()
241 cleardesc.id_number = idesc->id_number; in ckinode()
246 return (ckinode_common(dp, idesc, action)); in ckinode()
257 ckinode_common(struct dinode *dp, struct inodesc *idesc, in ckinode_common() argument
270 idesc->id_lbn++; in ckinode_common()
273 idesc->id_numfrags = in ckinode_common()
276 idesc->id_numfrags = sblock.fs_frag; in ckinode_common()
279 if ((ndb > 0) && (idesc->id_firsthole < 0)) { in ckinode_common()
280 idesc->id_firsthole = i; in ckinode_common()
284 idesc->id_blkno = dino.di_db[i]; in ckinode_common()
285 if (idesc->id_type == ADDR || idesc->id_type == ACL) in ckinode_common()
286 ret = (*idesc->id_func)(idesc); in ckinode_common()
288 ret = dirscan(idesc); in ckinode_common()
297 (idesc->id_truncto >= 0) && in ckinode_common()
298 (idesc->id_lbn >= idesc->id_truncto)) { in ckinode_common()
299 dp = ginode(idesc->id_number); in ckinode_common()
310 freeblk(idesc->id_number, dp->di_db[i], in ckinode_common()
312 dp = ginode(idesc->id_number); in ckinode_common()
339 idesc->id_numfrags = sblock.fs_frag; in ckinode_common()
353 idesc->id_blkno = dino.di_ib[i]; in ckinode_common()
354 ret = iblock(idesc, i + 1, in ckinode_common()
359 (idesc->id_truncto <= indir_data_blks) && in ckinode_common()
360 ((idesc->id_lbn + 1) >= indir_data_blks) && in ckinode_common()
361 ((idesc->id_lbn + 1) <= last_indir_blk)) { in ckinode_common()
362 dp = ginode(idesc->id_number); in ckinode_common()
364 freeblk(idesc->id_number, dp->di_ib[i], in ckinode_common()
379 (idesc->id_firsthole < 0)) { in ckinode_common()
380 idesc->id_firsthole = indir_data_blks; in ckinode_common()
437 iblock(struct inodesc *idesc, int ilevel, u_offset_t iblks, in iblock() argument
450 switch (idesc->id_type) { in iblock()
452 func = idesc->id_func; in iblock()
453 if (((n = (*func)(idesc)) & KEEPON) == 0) in iblock()
457 func = idesc->id_func; in iblock()
463 errexit("unknown inodesc type %d in iblock()", idesc->id_type); in iblock()
466 if (chkrange(idesc->id_blkno, idesc->id_numfrags)) { in iblock()
467 return ((idesc->id_type == ACL) ? STOP : SKIP); in iblock()
470 bp = getdatablk(idesc->id_blkno, (size_t)sblock.fs_bsize); in iblock()
521 if (nif < NINDIR(&sblock) && (idesc->id_func == pass1check || in iblock()
522 idesc->id_func == pass3bcheck)) { in iblock()
527 (ulong_t)idesc->id_number); in iblock()
530 } else if (dofix(idesc, buf)) { in iblock()
531 freeblk(idesc->id_number, in iblock()
547 last_lbn = howmany(idesc->id_filesize, sblock.fs_bsize); in iblock()
550 idesc->id_lbn++; in iblock()
552 idesc->id_blkno = bp->b_un.b_indir[i]; in iblock()
554 n = iblock(idesc, ilevel, iblks, action); in iblock()
566 n = (*func)(idesc); in iblock()
570 (idesc->id_truncto >= 0) && in iblock()
571 (idesc->id_lbn >= idesc->id_truncto)) { in iblock()
572 freeblk(idesc->id_number, bp->b_un.b_indir[i], in iblock()
591 if ((idesc->id_lbn < last_lbn) && in iblock()
592 (idesc->id_firsthole < 0)) { in iblock()
593 idesc->id_firsthole = idesc->id_lbn; in iblock()
595 if (idesc->id_type == DATA) { in iblock()
969 clri(struct inodesc *idesc, char *type, int verbose, int corrupting) in clri() argument
974 if (statemap[idesc->id_number] == USTATE) in clri()
977 dp = ginode(idesc->id_number); in clri()
979 pwarn("%s %s", type, file_id(idesc->id_number, dp->di_mode)); in clri()
980 pinode(idesc->id_number); in clri()
985 freeino(idesc->id_number, need_parent); in clri()
988 remove_orphan_dir(idesc->id_number); in clri()
1001 findname(struct inodesc *idesc) in findname() argument
1003 struct direct *dirp = idesc->id_dirp; in findname()
1005 if (dirp->d_ino != idesc->id_parent) in findname()
1007 (void) memmove(idesc->id_name, dirp->d_name, in findname()
1016 findino(struct inodesc *idesc) in findino() argument
1018 struct direct *dirp = idesc->id_dirp; in findino()
1022 if (strcmp(dirp->d_name, idesc->id_name) == 0 && in findino()
1024 idesc->id_parent = dirp->d_ino; in findino()
1033 struct inodesc idesc; in cleardirentry() local
1037 init_inodesc(&idesc); in cleardirentry()
1038 idesc.id_func = clearanentry; in cleardirentry()
1039 idesc.id_parent = target; in cleardirentry()
1040 idesc.id_type = DATA; in cleardirentry()
1041 idesc.id_fix = NOFIX; in cleardirentry()
1042 return (ckinode(dp, &idesc, CKI_TRAVERSE)); in cleardirentry()
1046 clearanentry(struct inodesc *idesc) in clearanentry() argument
1048 struct direct *dirp = idesc->id_dirp; in clearanentry()
1050 if (dirp->d_ino != idesc->id_parent || idesc->id_entryno < 2) { in clearanentry()
1051 idesc->id_entryno++; in clearanentry()
1261 struct inodesc idesc; in truncino() local
1297 idesc.id_name = lfname; in truncino()
1298 idesc.id_type = DATA; in truncino()
1299 idesc.id_func = findino; in truncino()
1300 idesc.id_number = ino; in truncino()
1301 idesc.id_fix = DONTKNOW; in truncino()
1302 if ((ckinode(dp, &idesc, in truncino()
1315 &idesc); in truncino()
1347 init_inodesc(&idesc); in truncino()
1348 idesc.id_type = ADDR; in truncino()
1349 idesc.id_func = pass4check; in truncino()
1350 idesc.id_number = ino; in truncino()
1351 idesc.id_fix = DONTKNOW; in truncino()
1352 idesc.id_truncto = howmany(new_length, sblock.fs_bsize); in truncino()
1354 if (!islink && ckinode(dp, &idesc, CKI_TRUNCATE) & ALTERED) in truncino()
1369 for (dblk = idesc.id_truncto + 1; dblk < NDADDR; dblk++) { in truncino()
1373 ilevel = get_indir_offsets(-1, idesc.id_truncto, NULL, NULL); in truncino()
1452 struct inodesc idesc; in lookup_dotdot_ino() local
1454 init_inodesc(&idesc); in lookup_dotdot_ino()
1455 idesc.id_type = DATA; in lookup_dotdot_ino()
1456 idesc.id_func = findino; in lookup_dotdot_ino()
1457 idesc.id_name = ".."; in lookup_dotdot_ino()
1458 idesc.id_number = ino; in lookup_dotdot_ino()
1459 idesc.id_fix = NOFIX; in lookup_dotdot_ino()
1461 if ((ckinode(ginode(ino), &idesc, CKI_TRAVERSE) & FOUND) != 0) { in lookup_dotdot_ino()
1462 return (idesc.id_parent); in lookup_dotdot_ino()
1474 struct inodesc idesc; in lookup_named_ino() local
1476 init_inodesc(&idesc); in lookup_named_ino()
1477 idesc.id_type = DATA; in lookup_named_ino()
1478 idesc.id_func = findino; in lookup_named_ino()
1479 idesc.id_name = name; in lookup_named_ino()
1480 idesc.id_number = dir; in lookup_named_ino()
1481 idesc.id_fix = NOFIX; in lookup_named_ino()
1483 if ((ckinode(ginode(dir), &idesc, CKI_TRAVERSE) & FOUND) != 0) { in lookup_named_ino()
1484 return (idesc.id_parent); in lookup_named_ino()
1497 mark_a_delayed_inode(struct inodesc *idesc) in mark_a_delayed_inode() argument
1499 struct direct *dirp = idesc->id_dirp; in mark_a_delayed_inode()
1501 if (idesc->id_lbn < idesc->id_parent) { in mark_a_delayed_inode()