diff options
| -rw-r--r-- | sys/compat/linux/linux_file.c | 8 | ||||
| -rw-r--r-- | sys/compat/linux/linux_file.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c index a4be5313aa96..daddafa325ad 100644 --- a/sys/compat/linux/linux_file.c +++ b/sys/compat/linux/linux_file.c @@ -1457,6 +1457,14 @@ fcntl_common(struct thread *td, struct linux_fcntl_args *args) fdrop(fp, td); return (0); + case LINUX_F_DUPFD_QUERY: + error = kern_kcmp(td, td->td_proc->p_pid, td->td_proc->p_pid, + KCMP_FILE, args->fd, args->arg); + if (error != 0) + return (error); + td->td_retval[0] = (td->td_retval[0] == 0) ? 1 : 0; + return (0); + default: linux_msg(td, "unsupported fcntl cmd %d", args->cmd); return (EINVAL); diff --git a/sys/compat/linux/linux_file.h b/sys/compat/linux/linux_file.h index 7448dc597230..0b6ca536be7d 100644 --- a/sys/compat/linux/linux_file.h +++ b/sys/compat/linux/linux_file.h @@ -127,6 +127,7 @@ #define LINUX_F_SETLEASE (LINUX_F_SPECIFIC_BASE + 0) #define LINUX_F_GETLEASE (LINUX_F_SPECIFIC_BASE + 1) +#define LINUX_F_DUPFD_QUERY (LINUX_F_SPECIFIC_BASE + 3) #define LINUX_F_CANCELLK (LINUX_F_SPECIFIC_BASE + 5) #define LINUX_F_DUPFD_CLOEXEC (LINUX_F_SPECIFIC_BASE + 6) #define LINUX_F_NOTIFY (LINUX_F_SPECIFIC_BASE + 2) |
