Lines Matching refs:fs
89 error = ulfs_bmaparray(fs, vp, lbn, &daddr, a, &num);
94 daddr = LFS_DBTOFSB(fs, daddr);
96 frags = lfs_numfrags(fs, size);
99 ooff = lfs_dino_getdb(fs, ip->i_din, lbn);
101 lfs_dino_setblocks(fs, ip->i_din,
102 lfs_dino_getblocks(fs, ip->i_din) + frags);
105 ofrags = lfs_numfrags(fs, ip->i_lfs_fragsize[lbn]);
106 lfs_dino_setblocks(fs, ip->i_din,
107 lfs_dino_getblocks(fs, ip->i_din) + (frags - ofrags));
109 lfs_dino_setdb(fs, ip->i_din, lbn, ndaddr);
112 ooff = lfs_dino_getib(fs, ip->i_din, a[0].in_off);
114 lfs_dino_setblocks(fs, ip->i_din,
115 lfs_dino_getblocks(fs, ip->i_din) + frags);
116 lfs_dino_setib(fs, ip->i_din, a[0].in_off, ndaddr);
120 if (bread(vp, ap->in_lbn, lfs_sb_getbsize(fs), 0, &bp))
124 ooff = lfs_iblock_get(fs, bp->b_data, ap->in_off);
126 lfs_dino_setblocks(fs, ip->i_din,
127 lfs_dino_getblocks(fs, ip->i_din) + frags);
128 lfs_iblock_set(fs, bp->b_data, ap->in_off, ndaddr);
137 oldsn = lfs_dtosn(fs, daddr);
141 osize = lfs_sb_getbsize(fs);
142 LFS_SEGENTRY(sup, fs, oldsn, bp);
146 fs->lfs_flags |= LFS_IFDIRTY;
147 LFS_WRITESEGENTRY(sup, fs, oldsn, bp);
148 for (i = 0; i < lfs_btofsb(fs, osize); i++)
153 if (lbn >= 0 && lfs_dino_getsize(fs, ip->i_din) <= (lbn << lfs_sb_getbshift(fs))) {
154 lfs_dino_setsize(fs, ip->i_din, (lbn << lfs_sb_getbshift(fs)) + 1);
161 minsize = (lbn << lfs_sb_getbshift(fs));
162 minsize += (size - lfs_sb_getfsize(fs)) + 1;
163 if (lfs_dino_getsize(fs, ip->i_din) < minsize)
164 lfs_dino_setsize(fs, ip->i_din, minsize);
171 sn = lfs_dtosn(fs, ndaddr);
172 LFS_SEGENTRY(sup, fs, sn, bp);
176 fs->lfs_flags |= LFS_IFDIRTY;
177 LFS_WRITESEGENTRY(sup, fs, sn, bp);
178 for (i = 0; i < lfs_btofsb(fs, size); i++)
187 lfs_sb_subbfree(fs, lfs_btofsb(fs, size));
189 lfs_sb_subbfree(fs, frags - ofrags);
220 LFS_IENTRY(ifp, fs, ino, bp);
221 daddr = lfs_if_getdaddr(fs, ifp);
223 lfs_if_setdaddr(fs, ifp, 0);
225 LFS_GET_HEADFREE(fs, cip, cbp, &nextfree);
226 lfs_if_setnextfree(fs, ifp, nextfree);
228 LFS_PUT_HEADFREE(fs, cip, cbp, ino);
232 vp = lfs_raw_vget(fs, ino, fs->lfs_ivnode->v_fd, daddr);
234 LFS_SEGENTRY(sup, fs, lfs_dtosn(fs, daddr), sbp);
235 sup->su_nbytes -= DINOSIZE(fs);
237 seg_table[lfs_dtosn(fs, daddr)].su_nbytes -= DINOSIZE(fs);
262 vp = vget(fs, lfs_fi_getino(fs, fip));
263 if (vp && vp != fs->lfs_ivnode &&
264 lfs_dino_getgen(fs, VTOI(vp)->i_din) == lfs_fi_getversion(fs, fip)) {
265 for (i = 0; i < lfs_fi_getnblocks(fs, fip); i++) {
266 size = (i == lfs_fi_getnblocks(fs, fip) - 1 ?
267 lfs_fi_getlastlength(fs, fip) : lfs_sb_getbsize(fs));
270 (uintmax_t)lfs_fi_getino(fs, fip),
271 (intmax_t)lfs_fi_getblock(fs, fip, i),
273 rfw_update_single(vp, lfs_fi_getblock(fs, fip, i), daddr, size);
274 daddr += lfs_btofsb(fs, size);
294 sn = lfs_dtosn(fs, idesc->id_blkno + i);
295 if (sn < 0 || sn >= lfs_sb_getnseg(fs) ||
301 if (sn != lfs_dtosn(fs, lfs_sb_getoffset(fs)) ||
302 idesc->id_blkno > lfs_sb_getoffset(fs)) {
309 seg_table[sn].su_nbytes -= lfs_fsbtob(fs, 1);
339 bread(fs->lfs_devvp, LFS_FSBTODB(fs, daddr), lfs_sb_getbsize(fs), 0, &bp);
340 buf = emalloc(lfs_sb_getbsize(fs));
341 memcpy(buf, bp->b_data, lfs_sb_getbsize(fs));
344 obuf = emalloc(lfs_sb_getbsize(fs));
346 bread(vp, ilbn, lfs_sb_getbsize(fs), 0, &bp);
347 memcpy(obuf, bp->b_data, lfs_sb_getbsize(fs));
350 memset(obuf, 0, lfs_sb_getbsize(fs));
353 dap < (int32_t *)((char *)buf + lfs_sb_getbsize(fs));
356 rfw_update_single(vp, lbn, *dap, lfs_dblksize(fs, dp, lbn));
363 lbn -= LFS_NINDIR(fs);
365 lbn -= LFS_NINDIR(fs) * LFS_NINDIR(fs);
383 vp = vget(fs, lfs_dino_getinumber(fs, dp));
388 odaddr = (ip ? lfs_dino_getdb(fs, ip->i_din, i) : 0x0);
389 if (lfs_dino_getdb(fs, dp, i) > 0 && lfs_dino_getdb(fs, dp, i) != odaddr)
390 rfw_update_single(vp, i, lfs_dino_getdb(fs, dp, i),
391 lfs_dblksize(fs, dp, i));
397 odaddr = (ip ? lfs_dino_getib(fs, ip->i_din, i) : 0x0);
398 if (lfs_dino_getib(fs, dp, i) > 0 && lfs_dino_getib(fs, dp, i) != odaddr) {
400 rfw_update_single(vp, i, lfs_dino_getib(fs, dp, i), lfs_sb_getbsize(fs));
401 account_indir(vp, dp, lbn, lfs_dino_getib(fs, dp, i), i);
404 off = LFS_NINDIR(fs);
406 off *= LFS_NINDIR(fs);
425 ino_t thisino = lfs_dino_getinumber(fs, dp);
432 LFS_IENTRY(ifp, fs, thisino, bp);
433 odaddr = lfs_if_getdaddr(fs, ifp);
435 lfs_if_setdaddr(fs, ifp, daddr);
440 (uintmax_t)lfs_dino_getinumber(fs, dp),
443 (int)lfs_dino_getmode(fs, dp),
444 (int)lfs_dino_getnlink(fs, dp));
447 vp = vget(fs, thisino);
448 lfs_copy_dinode(fs, VTOI(vp)->i_din, dp);
451 sn = lfs_dtosn(fs, odaddr);
452 LFS_SEGENTRY(sup, fs, sn, bp);
453 sup->su_nbytes -= DINOSIZE(fs);
455 seg_table[sn].su_nbytes -= DINOSIZE(fs);
457 sn = lfs_dtosn(fs, daddr);
458 LFS_SEGENTRY(sup, fs, sn, bp);
459 sup->su_nbytes += DINOSIZE(fs);
461 seg_table[sn].su_nbytes += DINOSIZE(fs);
480 extend_ifile(fs);
483 LFS_IENTRY(ifp, fs, thisino, bp);
484 if (lfs_if_getdaddr(fs, ifp) != 0) {
488 nextfree = lfs_if_getnextfree(fs, ifp);
489 lfs_if_setnextfree(fs, ifp, 0);
490 lfs_if_setdaddr(fs, ifp, daddr);
493 LFS_GET_HEADFREE(fs, cip, cbp, &oldhead);
495 LFS_PUT_HEADFREE(fs, cip, cbp, nextfree);
498 extend_ifile(fs);
504 LFS_IENTRY(ifp, fs, ino, bp);
505 assert(lfs_if_getnextfree(fs, ifp) != ino);
506 if (lfs_if_getnextfree(fs, ifp) == thisino) {
507 lfs_if_setnextfree(fs, ifp, nextfree);
510 LFS_PUT_TAILFREE(fs, cip, cbp, ino);
513 ino = lfs_if_getnextfree(fs, ifp);
519 LFS_SEGENTRY(sup, fs, lfs_dtosn(fs, daddr), bp);
520 sup->su_nbytes += DINOSIZE(fs);
522 seg_table[lfs_dtosn(fs, daddr)].su_nbytes += DINOSIZE(fs);
561 devvp = fs->lfs_devvp;
571 lastgood = try_verify(fs, devvp, 0, debug);
572 if (lastgood == lfs_sb_getoffset(fs)) {
580 (uintmax_t)lfs_sb_getoffset(fs), (uintmax_t)lastgood);
589 ibbuf = emalloc(lfs_sb_getibsize(fs));
591 daddr = lfs_sb_getoffset(fs);
595 seg_table[lfs_dtosn(fs, daddr)].su_flags |= SEGUSE_DIRTY | SEGUSE_ACTIVE;
596 LFS_SEGENTRY(sup, fs, lfs_dtosn(fs, daddr), sbp);
601 if (lfs_sntod(fs, lfs_dtosn(fs, daddr)) == daddr) {
602 if (daddr == lfs_sb_gets0addr(fs)) {
604 daddr += lfs_btofsb(fs, LFS_LABELPAD);
607 if (daddr == lfs_sb_getsboff(fs, i)) {
609 daddr += lfs_btofsb(fs, LFS_SBPAD);
611 if (daddr < lfs_sb_getsboff(fs, i))
618 bread(devvp, LFS_FSBTODB(fs, daddr), lfs_sb_getsumsize(fs), 0, &bp);
622 (intmax_t)daddr, (int)lfs_ss_getninos(fs, sp),
623 (int)lfs_ss_getnfinfo(fs, sp));
626 LFS_SEGENTRY(sup, fs, lfs_dtosn(fs, daddr), sbp);
629 lfs_sb_subbfree(fs, lfs_btofsb(fs, lfs_sb_getsumsize(fs)));
630 lfs_sb_adddmeta(fs, lfs_btofsb(fs, lfs_sb_getsumsize(fs)));
632 if (lfs_sntod(fs, lfs_dtosn(fs, daddr)) == daddr +
633 hassuper * lfs_btofsb(fs, LFS_SBPAD) &&
634 lfs_dtosn(fs, daddr) != lfs_dtosn(fs, lfs_sb_getoffset(fs))) {
635 lfs_sb_subnclean(fs, 1);
640 if (lfs_ss_getninos(fs, sp)) {
641 LFS_SEGENTRY(sup, fs, lfs_dtosn(fs, daddr), sbp);
642 sup->su_ninos += howmany(lfs_ss_getninos(fs, sp), LFS_INOPB(fs));
644 lfs_sb_adddmeta(fs, lfs_btofsb(fs, howmany(lfs_ss_getninos(fs, sp),
645 LFS_INOPB(fs)) *
646 lfs_sb_getibsize(fs)));
648 iip = SEGSUM_IINFOSTART(fs, bp->b_data);
649 for (i = 0; i < howmany(lfs_ss_getninos(fs, sp), LFS_INOPB(fs)); i++) {
652 inums = ecalloc(LFS_INOPB(fs) + 1, sizeof(*inums));
653 ibdaddr = lfs_ii_getblock(fs, iip);
654 iip = NEXTLOWER_IINFO(fs, iip);
655 lfs_sb_subbfree(fs, lfs_btofsb(fs, lfs_sb_getibsize(fs)));
657 bread(devvp, LFS_FSBTODB(fs, ibdaddr),
658 lfs_sb_getibsize(fs), 0, &ibp);
659 memcpy(ibbuf, ibp->b_data, lfs_sb_getibsize(fs));
663 for (k = 0; k < LFS_INOPB(fs); k++) {
664 dp = DINO_IN_BLOCK(fs, ibbuf, k);
665 if (lfs_dino_getinumber(fs, dp) == 0 ||
666 lfs_dino_getinumber(fs, dp) == LFS_IFILE_INUM)
669 if (lfs_dino_getnlink(fs, dp) < 0
671 || lfs_dino_getinumber(fs, dp) < 0
672 || lfs_dino_getsize(fs, dp) < 0
682 vp = vget(fs, lfs_dino_getinumber(fs, dp));
689 if (lfs_dino_getnlink(fs, dp) == 0) {
690 remove_ino(vp, lfs_dino_getinumber(fs, dp));
701 if (!(lfs_ss_getflags(fs, sp) & SS_DIROP))
704 inums[j++] = lfs_dino_getinumber(fs, dp);
715 lfs_dino_getgen(fs, VTOI(vp)->i_din)
716 < lfs_dino_getgen(fs, dp)) {
717 remove_ino(vp, lfs_dino_getinumber(fs, dp));
718 if (!(lfs_ss_getflags(fs, sp) & SS_DIROP))
721 inums[j++] = lfs_dino_getinumber(fs, dp);
735 lfs_dino_getgen(fs, VTOI(vp)->i_din)
736 == lfs_dino_getgen(fs, dp)) {
741 lfs_dino_setmode(fs, VTOD(vp), lfs_dino_getmode(fs, dp));
742 lfs_dino_setnlink(fs, VTOD(vp), lfs_dino_getmode(fs, dp));
744 lfs_dino_setsize(fs, VTOD(vp), lfs_dino_getsize(fs, dp));
745 lfs_dino_setatime(fs, VTOD(vp), lfs_dino_getatime(fs, dp));
746 lfs_dino_setatimensec(fs, VTOD(vp), lfs_dino_getatimensec(fs, dp));
747 lfs_dino_setmtime(fs, VTOD(vp), lfs_dino_getmtime(fs, dp));
748 lfs_dino_setmtimensec(fs, VTOD(vp), lfs_dino_getmtimensec(fs, dp));
749 lfs_dino_setctime(fs, VTOD(vp), lfs_dino_getctime(fs, dp));
750 lfs_dino_setctimensec(fs, VTOD(vp), lfs_dino_getctimensec(fs, dp));
751 lfs_dino_setflags(fs, VTOD(vp), lfs_dino_getflags(fs, dp));
752 lfs_dino_setuid(fs, VTOD(vp), lfs_dino_getuid(fs, dp));
753 lfs_dino_setgid(fs, VTOD(vp), lfs_dino_getgid(fs, dp));
759 vp = lfs_raw_vget(fs, inums[j],
764 (int)inums[j], lfs_dino_getnlink(fs, VTOD(vp)));
767 lfs_dino_setdb(fs, VTOD(vp), k, 0);
770 lfs_dino_setib(fs, VTOD(vp), k, 0);
772 lfs_dino_setblocks(fs, VTOD(vp), 0);
780 bc = check_summary(fs, sp, daddr, debug, devvp, NULL);
783 (intmax_t)daddr, (uintmax_t)lfs_ss_getserial(fs, sp));
789 (intmax_t)daddr, (uintmax_t)lfs_ss_getserial(fs, sp));
790 lastserial = lfs_ss_getserial(fs, sp);
793 daddr += lfs_btofsb(fs, lfs_sb_getsumsize(fs) + bc);
794 if (lfs_dtosn(fs, odaddr) != lfs_dtosn(fs, daddr) ||
795 lfs_dtosn(fs, daddr) != lfs_dtosn(fs, daddr +
796 lfs_btofsb(fs, lfs_sb_getsumsize(fs) + lfs_sb_getbsize(fs)) - 1)) {
797 daddr = lfs_ss_getnext(fs, sp);
806 lfs_sb_setserial(fs, lastserial + 1);
830 daddr = lfs_sb_getoffset(fs);
832 if (!(seg_table[lfs_dtosn(fs, daddr)].su_flags & SEGUSE_DIRTY)) {
833 seg_table[lfs_dtosn(fs, daddr)].su_flags |= SEGUSE_DIRTY;
834 LFS_SEGENTRY(sup, fs, lfs_dtosn(fs, daddr), sbp);
840 if (lfs_sntod(fs, lfs_dtosn(fs, daddr)) == daddr) {
841 if (daddr == lfs_sb_gets0addr(fs))
842 daddr += lfs_btofsb(fs, LFS_LABELPAD);
844 if (daddr == lfs_sb_getsboff(fs, i)) {
845 daddr += lfs_btofsb(fs, LFS_SBPAD);
847 if (daddr < lfs_sb_getsboff(fs, i))
853 bread(devvp, LFS_FSBTODB(fs, daddr), lfs_sb_getsumsize(fs), 0, &bp);
855 bc = check_summary(fs, sp, daddr, debug, devvp, pass6harvest);
858 (intmax_t)daddr, (uintmax_t)lfs_ss_getserial(fs, sp));
863 daddr += lfs_btofsb(fs, lfs_sb_getsumsize(fs) + bc);
864 lfs_sb_subavail(fs, lfs_btofsb(fs, lfs_sb_getsumsize(fs) + bc));
865 if (lfs_dtosn(fs, odaddr) != lfs_dtosn(fs, daddr) ||
866 lfs_dtosn(fs, daddr) != lfs_dtosn(fs, daddr +
867 lfs_btofsb(fs, lfs_sb_getsumsize(fs) + lfs_sb_getbsize(fs)) - 1)) {
868 lfs_sb_subavail(fs, lfs_sntod(fs, lfs_dtosn(fs, daddr) + 1) - daddr);
869 daddr = lfs_ss_getnext(fs, sp);
871 LFS_CLEANERINFO(cip, fs, cbp);
872 LFS_SYNC_CLEANERINFO(cip, fs, cbp, 0);
878 if (lfs_sntod(fs, lfs_dtosn(fs, lastgood)) == lastgood) {
879 if (lastgood == lfs_sb_gets0addr(fs))
880 lastgood += lfs_btofsb(fs, LFS_LABELPAD);
882 if (lastgood == lfs_sb_getsboff(fs, i))
883 lastgood += lfs_btofsb(fs, LFS_SBPAD);
884 if (lastgood < lfs_sb_getsboff(fs, i))
890 lfs_sb_setoffset(fs, lastgood);
891 lfs_sb_setcurseg(fs, lfs_sntod(fs, lfs_dtosn(fs, lastgood)));
892 for (sn = curseg = lfs_dtosn(fs, lfs_sb_getcurseg(fs));;) {
893 sn = (sn + 1) % lfs_sb_getnseg(fs);
896 LFS_SEGENTRY(sup, fs, sn, bp);
904 lfs_sb_setnextseg(fs, lfs_sntod(fs, sn));