Lines Matching +full:ip +full:- +full:block
1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
68 * Set file system reserved blocks in used block map. in pass1()
93 cgp = cgbp->b_un.b_cg; in pass1()
108 inosused = cgp->cg_initediblk; in pass1()
138 cp = &cg_inosused(cgp)[(inosused - 1) / CHAR_BIT]; in pass1()
139 for ( ; inosused != 0; cp--) { in pass1()
142 inosused -= CHAR_BIT; in pass1()
147 for (i = 1 << (CHAR_BIT - 1); i > 0; i >>= 1) { in pass1()
150 inosused--; in pass1()
184 i > cgp->cg_initediblk) in pass1()
196 cgp->cg_initediblk > 2 * INOPB(&sblock) && in pass1()
197 mininos < cgp->cg_initediblk) { in pass1()
198 i = cgp->cg_initediblk; in pass1()
200 cgp->cg_initediblk = 2 * INOPB(&sblock); in pass1()
202 cgp->cg_initediblk = mininos; in pass1()
204 c, i, cgp->cg_initediblk, "VALID INODES"); in pass1()
213 inosused = lastino - (c * sblock.fs_ipg); in pass1()
214 if (rebuiltcg && inosused > cgp->cg_initediblk && in pass1()
216 cgp->cg_initediblk = roundup(inosused, INOPB(&sblock)); in pass1()
218 cgp->cg_initediblk); in pass1()
249 struct inode ip; in checkinode() local
263 (memcmp(dp->dp1.di_db, zino.dp1.di_db, in checkinode()
265 memcmp(dp->dp1.di_ib, zino.dp1.di_ib, in checkinode()
267 dp->dp1.di_mode || dp->dp1.di_size)) || in checkinode()
269 (memcmp(dp->dp2.di_db, zino.dp2.di_db, in checkinode()
271 memcmp(dp->dp2.di_ib, zino.dp2.di_ib, in checkinode()
273 dp->dp2.di_mode || dp->dp2.di_size))) { in checkinode()
277 ginode(inumber, &ip); in checkinode()
278 clearinode(ip.i_dp); in checkinode()
279 inodirty(&ip); in checkinode()
280 irelse(&ip); in checkinode()
283 inoinfo(inumber)->ino_state = USTATE; in checkinode()
291 if (!preen && mode == IFMT && reply("HOLD BAD BLOCK") == 1) { in checkinode()
292 ginode(inumber, &ip); in checkinode()
293 dp = ip.i_dp; in checkinode()
296 inodirty(&ip); in checkinode()
297 irelse(&ip); in checkinode()
302 printf("bad special-file size %ju:", in checkinode()
304 pfatal("BAD SPECIAL-FILE SIZE"); in checkinode()
310 printf("bad special-file rdev NODEV:"); in checkinode()
311 pfatal("BAD SPECIAL-FILE RDEV"); in checkinode()
326 * Fake ndb value so direct/indirect block checks below in checkinode()
337 j = ndb - UFS_NDADDR; in checkinode()
338 for (ndb = 1; j > 1; j--) in checkinode()
350 pfatal("INVALID DIRECT BLOCK"); in checkinode()
351 ginode(inumber, &ip); in checkinode()
352 prtinode(&ip); in checkinode()
354 DIP_SET(ip.i_dp, di_db[j], 0); in checkinode()
355 inodirty(&ip); in checkinode()
357 irelse(&ip); in checkinode()
359 for (j = 0, ndb -= UFS_NDADDR; ndb > 0; j++) in checkinode()
367 pfatal("INVALID INDIRECT BLOCK"); in checkinode()
368 ginode(inumber, &ip); in checkinode()
369 prtinode(&ip); in checkinode()
371 DIP_SET(ip.i_dp, di_ib[j], 0); in checkinode()
372 inodirty(&ip); in checkinode()
374 irelse(&ip); in checkinode()
381 inoinfo(inumber)->ino_linkcnt = DIP(dp, di_nlink); in checkinode()
384 inoinfo(inumber)->ino_state = DCLEAR; in checkinode()
386 inoinfo(inumber)->ino_state = DZLINK; in checkinode()
388 inoinfo(inumber)->ino_state = DSTATE; in checkinode()
393 inoinfo(inumber)->ino_state = FZLINK; in checkinode()
395 inoinfo(inumber)->ino_state = FSTATE; in checkinode()
396 inoinfo(inumber)->ino_type = IFTODT(mode); in checkinode()
398 idesc->id_number = inumber; in checkinode()
400 inoinfo(inumber)->ino_idtype = SNAP; in checkinode()
402 inoinfo(inumber)->ino_idtype = ADDR; in checkinode()
403 idesc->id_type = inoinfo(inumber)->ino_idtype; in checkinode()
405 if (sblock.fs_magic == FS_UFS2_MAGIC && dp->dp2.di_extsize > 0) { in checkinode()
406 ndb = howmany(dp->dp2.di_extsize, sblock.fs_bsize); in checkinode()
408 if (--ndb == 0 && in checkinode()
409 (offset = blkoff(&sblock, dp->dp2.di_extsize)) != 0) in checkinode()
410 idesc->id_numfrags = numfrags(&sblock, in checkinode()
413 idesc->id_numfrags = sblock.fs_frag; in checkinode()
414 if (dp->dp2.di_extb[j] == 0) in checkinode()
416 idesc->id_blkno = dp->dp2.di_extb[j]; in checkinode()
417 ret = (*idesc->id_func)(idesc); in checkinode()
423 eascan(idesc, &dp->dp2); in checkinode()
424 idesc->id_entryno *= btodb(sblock.fs_fsize); in checkinode()
425 if (DIP(dp, di_blocks) != idesc->id_entryno) { in checkinode()
426 pwarn("INCORRECT BLOCK COUNT I=%lu (%ju should be %ju)", in checkinode()
428 (uintmax_t)idesc->id_entryno); in checkinode()
434 ginode(inumber, &ip); in checkinode()
435 DIP_SET(ip.i_dp, di_blocks, idesc->id_entryno); in checkinode()
436 inodirty(&ip); in checkinode()
437 irelse(&ip); in checkinode()
439 cmd.value = idesc->id_number; in checkinode()
440 cmd.size = idesc->id_entryno - DIP(dp, di_blocks); in checkinode()
445 &cmd, sizeof cmd) == -1) in checkinode()
446 rwerror("ADJUST INODE BLOCK COUNT", cmd.value); in checkinode()
451 * the last block of a file be allocated. The last allocated block in checkinode()
453 * past the last allocated block of the file and if that is found, in checkinode()
454 * shorten the file to reference the last allocated block to avoid in checkinode()
458 * for files that contain only direct block pointers. However in checkinode()
462 * to have a hole at its end because the block pointer has been in checkinode()
464 * that is located in an indirect block receives only a warning in checkinode()
465 * while finding a hole at the end of a file in a direct block in checkinode()
469 if (idesc->id_lballoc < lblkno(&sblock, size - 1) && in checkinode()
472 fixsize = lblktosize(&sblock, idesc->id_lballoc + 1); in checkinode()
486 ginode(inumber, &ip); in checkinode()
487 DIP_SET(ip.i_dp, di_size, fixsize); in checkinode()
488 inodirty(&ip); in checkinode()
489 irelse(&ip); in checkinode()
491 cmd.value = idesc->id_number; in checkinode()
497 &cmd, sizeof cmd) == -1) in checkinode()
504 ginode(inumber, &ip); in checkinode()
505 prtinode(&ip); in checkinode()
506 inoinfo(inumber)->ino_state = USTATE; in checkinode()
508 clearinode(ip.i_dp); in checkinode()
509 inodirty(&ip); in checkinode()
511 irelse(&ip); in checkinode()
520 ufs2_daddr_t blkno = idesc->id_blkno; in pass1check()
524 if (idesc->id_type == SNAP) { in pass1check()
527 if (idesc->id_number == cursnapshot) { in pass1check()
528 if (blkno == blkstofrags(&sblock, idesc->id_lbn)) in pass1check()
531 blkno = blkstofrags(&sblock, idesc->id_lbn); in pass1check()
532 idesc->id_entryno -= idesc->id_numfrags; in pass1check()
539 if ((anyout = chkrange(blkno, idesc->id_numfrags)) != 0) { in pass1check()
540 blkerror(idesc->id_number, "BAD", blkno); in pass1check()
543 (u_long)idesc->id_number); in pass1check()
554 for (nfrags = idesc->id_numfrags; nfrags > 0; blkno++, nfrags--) { in pass1check()
561 blkerror(idesc->id_number, "DUP", blkno); in pass1check()
564 (u_long)idesc->id_number); in pass1check()
584 new->dup = blkno; in pass1check()
587 new->next = NULL; in pass1check()
589 new->next = muldup->next; in pass1check()
590 muldup->next = new; in pass1check()
592 for (dlp = duplist; dlp != muldup; dlp = dlp->next) in pass1check()
593 if (dlp->dup == blkno) in pass1check()
595 if (dlp == muldup && dlp->dup != blkno) in pass1check()
601 idesc->id_entryno++; in pass1check()
603 if (idesc->id_level == 0 && idesc->id_lballoc < idesc->id_lbn) in pass1check()
604 idesc->id_lballoc = idesc->id_lbn; in pass1check()