Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/udf/udf_vnops.c
Show First 20 Lines • Show All 840 Lines • ▼ Show 20 Lines | if ((fid->l_fi == 0) && (fid->file_char & UDF_FILE_CHAR_PAR)) { | ||||
* usually zero, and NFS doesn't like that value | * usually zero, and NFS doesn't like that value | ||||
*/ | */ | ||||
dir.d_fileno = node->hash_id; | dir.d_fileno = node->hash_id; | ||||
dir.d_type = DT_DIR; | dir.d_type = DT_DIR; | ||||
dir.d_name[0] = '.'; | dir.d_name[0] = '.'; | ||||
dir.d_name[1] = '\0'; | dir.d_name[1] = '\0'; | ||||
dir.d_namlen = 1; | dir.d_namlen = 1; | ||||
dir.d_reclen = GENERIC_DIRSIZ(&dir); | dir.d_reclen = GENERIC_DIRSIZ(&dir); | ||||
dir.d_off = 1; | |||||
uiodir.dirent = &dir; | uiodir.dirent = &dir; | ||||
error = udf_uiodir(&uiodir, dir.d_reclen, uio, 1); | error = udf_uiodir(&uiodir, dir.d_reclen, uio, 1); | ||||
if (error) | if (error) | ||||
break; | break; | ||||
dir.d_fileno = udf_getid(&fid->icb); | dir.d_fileno = udf_getid(&fid->icb); | ||||
dir.d_type = DT_DIR; | dir.d_type = DT_DIR; | ||||
dir.d_name[0] = '.'; | dir.d_name[0] = '.'; | ||||
dir.d_name[1] = '.'; | dir.d_name[1] = '.'; | ||||
dir.d_name[2] = '\0'; | dir.d_name[2] = '\0'; | ||||
dir.d_namlen = 2; | dir.d_namlen = 2; | ||||
dir.d_reclen = GENERIC_DIRSIZ(&dir); | dir.d_reclen = GENERIC_DIRSIZ(&dir); | ||||
dir.d_off = 2; | |||||
uiodir.dirent = &dir; | uiodir.dirent = &dir; | ||||
error = udf_uiodir(&uiodir, dir.d_reclen, uio, 2); | error = udf_uiodir(&uiodir, dir.d_reclen, uio, 2); | ||||
} else { | } else { | ||||
dir.d_namlen = udf_transname(&fid->data[fid->l_iu], | dir.d_namlen = udf_transname(&fid->data[fid->l_iu], | ||||
&dir.d_name[0], fid->l_fi, udfmp); | &dir.d_name[0], fid->l_fi, udfmp); | ||||
dir.d_fileno = udf_getid(&fid->icb); | dir.d_fileno = udf_getid(&fid->icb); | ||||
dir.d_type = (fid->file_char & UDF_FILE_CHAR_DIR) ? | dir.d_type = (fid->file_char & UDF_FILE_CHAR_DIR) ? | ||||
DT_DIR : DT_UNKNOWN; | DT_DIR : DT_UNKNOWN; | ||||
dir.d_reclen = GENERIC_DIRSIZ(&dir); | dir.d_reclen = GENERIC_DIRSIZ(&dir); | ||||
dir.d_off = ds->this_off; | |||||
uiodir.dirent = &dir; | uiodir.dirent = &dir; | ||||
error = udf_uiodir(&uiodir, dir.d_reclen, uio, | error = udf_uiodir(&uiodir, dir.d_reclen, uio, | ||||
ds->this_off); | ds->this_off); | ||||
} | } | ||||
if (error) | if (error) | ||||
break; | break; | ||||
uio->uio_offset = ds->offset + ds->off; | uio->uio_offset = ds->offset + ds->off; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 615 Lines • Show Last 20 Lines |