Lines Matching refs:disk
52 getinode(struct uufsd *disk, union dinodep *dp, ino_t inum) in getinode() argument
59 ERROR(disk, NULL); in getinode()
61 fs = &disk->d_fs; in getinode()
63 ERROR(disk, "inode number out of range"); in getinode()
66 inoblock = (caddr_t)&disk->d_inos[0]; in getinode()
67 min = disk->d_inomin; in getinode()
68 max = disk->d_inomax; in getinode()
71 ERROR(disk, "cannot get current time of day"); in getinode()
76 bread(disk, fsbtodb(fs, ino_to_fsba(fs, inum)), inoblock, in getinode()
78 disk->d_inomin = min = inum - (inum % INOPB(fs)); in getinode()
79 disk->d_inomax = max = min + INOPB(fs); in getinode()
80 gotit: switch (disk->d_ufs) { in getinode()
82 disk->d_dp.dp1 = &((struct ufs1_dinode *)inoblock)[inum - min]; in getinode()
83 if (ffs_oldfscompat_inode_read(fs, disk->d_dp, now.tv_sec)) in getinode()
84 putinode(disk); in getinode()
86 *dp = disk->d_dp; in getinode()
89 disk->d_dp.dp2 = &((struct ufs2_dinode *)inoblock)[inum - min]; in getinode()
91 *dp = disk->d_dp; in getinode()
92 if (ffs_verify_dinode_ckhash(fs, disk->d_dp.dp2) == 0) { in getinode()
93 if (ffs_oldfscompat_inode_read(fs, disk->d_dp, in getinode()
95 putinode(disk); in getinode()
98 ERROR(disk, "check-hash failed for inode read from disk"); in getinode()
103 ERROR(disk, "unknown UFS filesystem type"); in getinode()
108 putinode(struct uufsd *disk) in putinode() argument
112 fs = &disk->d_fs; in putinode()
113 if (disk->d_ufs == 2) in putinode()
114 ffs_update_dinode_ckhash(fs, disk->d_dp.dp2); in putinode()
115 if (bwrite(disk, fsbtodb(fs, ino_to_fsba(&disk->d_fs, disk->d_inomin)), in putinode()
116 (caddr_t)&disk->d_inos[0], disk->d_fs.fs_bsize) <= 0) in putinode()