Changeset View
Changeset View
Standalone View
Standalone View
stand/libsa/ufs.c
Show First 20 Lines • Show All 632 Lines • ▼ Show 20 Lines | if ((DIP(fp, di_mode) & IFMT) == IFLNK) { | ||||
++nlinks > MAXSYMLINKS) { | ++nlinks > MAXSYMLINKS) { | ||||
rc = ENOENT; | rc = ENOENT; | ||||
goto out; | goto out; | ||||
} | } | ||||
bcopy(cp, &namebuf[link_len], len + 1); | bcopy(cp, &namebuf[link_len], len + 1); | ||||
if (link_len < fs->fs_maxsymlinklen) { | if (link_len < fs->fs_maxsymlinklen) { | ||||
if (fp->f_fs->fs_magic == FS_UFS1_MAGIC) | bcopy(DIP(fp, di_shortlink), namebuf, | ||||
cp = (caddr_t)(fp->f_di.di1.di_db); | (unsigned) link_len); | ||||
else | |||||
cp = (caddr_t)(fp->f_di.di2.di_db); | |||||
bcopy(cp, namebuf, (unsigned) link_len); | |||||
} else { | } else { | ||||
/* | /* | ||||
* Read file for symbolic link | * Read file for symbolic link | ||||
*/ | */ | ||||
size_t buf_size; | size_t buf_size; | ||||
ufs2_daddr_t disk_block; | ufs2_daddr_t disk_block; | ||||
struct fs *fs = fp->f_fs; | struct fs *fs = fp->f_fs; | ||||
▲ Show 20 Lines • Show All 308 Lines • Show Last 20 Lines |