Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/nandfs/nandfs_vnops.c
Show First 20 Lines • Show All 1,227 Lines • ▼ Show 20 Lines | while (diroffset < file_size) { | ||||
name_len = ndirent->name_len; | name_len = ndirent->name_len; | ||||
memset(&dirent, 0, sizeof(struct dirent)); | memset(&dirent, 0, sizeof(struct dirent)); | ||||
dirent.d_fileno = ndirent->inode; | dirent.d_fileno = ndirent->inode; | ||||
if (dirent.d_fileno) { | if (dirent.d_fileno) { | ||||
dirent.d_type = ndirent->file_type; | dirent.d_type = ndirent->file_type; | ||||
dirent.d_namlen = name_len; | dirent.d_namlen = name_len; | ||||
strncpy(dirent.d_name, ndirent->name, name_len); | strncpy(dirent.d_name, ndirent->name, name_len); | ||||
dirent.d_reclen = GENERIC_DIRSIZ(&dirent); | dirent.d_reclen = GENERIC_DIRSIZ(&dirent); | ||||
/* NOTE: d_off is the offset of the *next* entry. */ | |||||
dirent.d_off = diroffset + ndirent->rec_len; | |||||
DPRINTF(READDIR, ("copying `%*.*s`\n", name_len, | DPRINTF(READDIR, ("copying `%*.*s`\n", name_len, | ||||
name_len, dirent.d_name)); | name_len, dirent.d_name)); | ||||
} | } | ||||
/* | /* | ||||
* If there isn't enough space in the uio to return a | * If there isn't enough space in the uio to return a | ||||
* whole dirent, break off read | * whole dirent, break off read | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 1,211 Lines • Show Last 20 Lines |