Changeset View
Changeset View
Standalone View
Standalone View
lib/libufs/inode.c
Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | if (inode >= min && inode < max) | ||||
goto gotit; | goto gotit; | ||||
bread(disk, fsbtodb(fs, ino_to_fsba(fs, inode)), inoblock, | bread(disk, fsbtodb(fs, ino_to_fsba(fs, inode)), inoblock, | ||||
fs->fs_bsize); | fs->fs_bsize); | ||||
disk->d_inomin = min = inode - (inode % INOPB(fs)); | disk->d_inomin = min = inode - (inode % INOPB(fs)); | ||||
disk->d_inomax = max = min + INOPB(fs); | disk->d_inomax = max = min + INOPB(fs); | ||||
gotit: switch (disk->d_ufs) { | gotit: switch (disk->d_ufs) { | ||||
case 1: | case 1: | ||||
dp1 = &((struct ufs1_dinode *)inoblock)[inode - min]; | dp1 = &((struct ufs1_dinode *)inoblock)[inode - min]; | ||||
*mode = dp1->di_mode & IFMT; | *mode = dp1->di_mode & UFS_IFMT; | ||||
*dino = dp1; | *dino = dp1; | ||||
return (0); | return (0); | ||||
case 2: | case 2: | ||||
dp2 = &((struct ufs2_dinode *)inoblock)[inode - min]; | dp2 = &((struct ufs2_dinode *)inoblock)[inode - min]; | ||||
*mode = dp2->di_mode & IFMT; | *mode = dp2->di_mode & UFS_IFMT; | ||||
*dino = dp2; | *dino = dp2; | ||||
return (0); | return (0); | ||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
ERROR(disk, "unknown UFS filesystem type"); | ERROR(disk, "unknown UFS filesystem type"); | ||||
return (-1); | return (-1); | ||||
} | } | ||||
Show All 16 Lines |