Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/devfs/devfs_vnops.c
Show First 20 Lines • Show All 1,349 Lines • ▼ Show 20 Lines | if (dd->de_dirent->d_type == DT_DIR) | ||||
de = dd->de_dir; | de = dd->de_dir; | ||||
else | else | ||||
de = dd; | de = dd; | ||||
dp = dd->de_dirent; | dp = dd->de_dirent; | ||||
MPASS(dp->d_reclen == GENERIC_DIRSIZ(dp)); | MPASS(dp->d_reclen == GENERIC_DIRSIZ(dp)); | ||||
if (dp->d_reclen > uio->uio_resid) | if (dp->d_reclen > uio->uio_resid) | ||||
break; | break; | ||||
dp->d_fileno = de->de_inode; | dp->d_fileno = de->de_inode; | ||||
/* NOTE: d_off is the offset for the *next* entry. */ | |||||
dp->d_off = off + dp->d_reclen; | |||||
if (off >= uio->uio_offset) { | if (off >= uio->uio_offset) { | ||||
error = vfs_read_dirent(ap, dp, off); | error = vfs_read_dirent(ap, dp, off); | ||||
if (error) | if (error) | ||||
break; | break; | ||||
} | } | ||||
off += dp->d_reclen; | off += dp->d_reclen; | ||||
} | } | ||||
sx_xunlock(&dmp->dm_lock); | sx_xunlock(&dmp->dm_lock); | ||||
▲ Show 20 Lines • Show All 601 Lines • Show Last 20 Lines |