Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_file.c
Show First 20 Lines • Show All 285 Lines • ▼ Show 20 Lines | if (args->flags & LINUX_AT_EMPTY_PATH) | ||||
/* XXX: not supported yet */ | /* XXX: not supported yet */ | ||||
return (EOPNOTSUPP); | return (EOPNOTSUPP); | ||||
fd = args->dirfd; | fd = args->dirfd; | ||||
if (fd == LINUX_AT_FDCWD) | if (fd == LINUX_AT_FDCWD) | ||||
fd = AT_FDCWD; | fd = AT_FDCWD; | ||||
bsd_flags = 0; | bsd_flags = 0; | ||||
if (!(args->flags & LINUX_AT_SYMLINK_FOLLOW)) | if ((args->flags & LINUX_AT_SYMLINK_FOLLOW) != 0) | ||||
bsd_flags |= AT_SYMLINK_NOFOLLOW; | bsd_flags |= AT_SYMLINK_FOLLOW; | ||||
kib: Does kern_getfhat() accepts AT_SYMLINK_FOLLOW? IMO it is not. | |||||
jhbAuthorUnsubmitted Done Inline ActionsBleh. Having both FOLLOW and NOFOLLOW AT_* flags is a mess. jhb: Bleh. Having both FOLLOW and NOFOLLOW AT_* flags is a mess. | |||||
if (!LUSECONVPATH(td)) { | if (!LUSECONVPATH(td)) { | ||||
error = kern_getfhat(td, bsd_flags, fd, args->name, | error = kern_getfhat(td, bsd_flags, fd, args->name, | ||||
UIO_USERSPACE, &fh, UIO_SYSSPACE); | UIO_USERSPACE, &fh, UIO_SYSSPACE); | ||||
} else { | } else { | ||||
char *path; | char *path; | ||||
LCONVPATH_AT(td, args->name, &path, 0, fd); | LCONVPATH_AT(td, args->name, &path, 0, fd); | ||||
▲ Show 20 Lines • Show All 1,779 Lines • Show Last 20 Lines |
Does kern_getfhat() accepts AT_SYMLINK_FOLLOW? IMO it is not.