Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_file.c
Show First 20 Lines • Show All 238 Lines • ▼ Show 20 Lines | linux_name_to_handle_at(struct thread *td, | ||||
if (args->flags & ~valid_flags) | if (args->flags & ~valid_flags) | ||||
return (EINVAL); | return (EINVAL); | ||||
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) || | ||||
(args->flags & LINUX_AT_SYMLINK_NOFOLLOW)) | |||||
bsd_flags |= AT_SYMLINK_NOFOLLOW; | bsd_flags |= AT_SYMLINK_NOFOLLOW; | ||||
if ((args->flags & LINUX_AT_EMPTY_PATH) != 0) | if ((args->flags & LINUX_AT_EMPTY_PATH) != 0) | ||||
bsd_flags |= AT_EMPTY_PATH; | bsd_flags |= AT_EMPTY_PATH; | ||||
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); | ||||
if (error != 0) | if (error != 0) | ||||
return (error); | return (error); | ||||
▲ Show 20 Lines • Show All 1,622 Lines • Show Last 20 Lines |