diff options
| author | Khem Raj <raj.khem@gmail.com> | 2018-09-12 18:05:31 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-09-17 08:41:44 +0100 |
| commit | b759a65e3f6cf419db34e9bff1712c6cdcc32608 (patch) | |
| tree | 1f260cdfcbf9db6a5b03b89f048275b92911bc67 | |
| parent | 7bf0d815877c441a92730de8b86e3c4de1f7165b (diff) | |
| download | poky-b759a65e3f6cf419db34e9bff1712c6cdcc32608.tar.gz | |
musl: Wire-up name_to_handle_at and name_to_handle_at syscalls
(From OE-Core rev: c70bb5a24e8923a34adb9c7b8298ae12702e3f27)
(From OE-Core rev: a74faf487545df16c7395ee6f6a302f989c1341b)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-core/musl/musl/0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch | 76 | ||||
| -rw-r--r-- | meta/recipes-core/musl/musl_git.bb | 1 |
2 files changed, 77 insertions, 0 deletions
diff --git a/meta/recipes-core/musl/musl/0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch b/meta/recipes-core/musl/musl/0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch new file mode 100644 index 0000000000..4738e1efd8 --- /dev/null +++ b/meta/recipes-core/musl/musl/0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch | |||
| @@ -0,0 +1,76 @@ | |||
| 1 | From ef3ef607693a9513d5ab94a1de67dd2f1f97d8ad Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Wed, 12 Sep 2018 16:08:40 -0700 | ||
| 4 | Subject: [PATCH] wireup linux/name_to_handle_at and name_to_handle_at syscalls | ||
| 5 | |||
| 6 | Upstream-Status: Submitted [https://www.openwall.com/lists/musl/2018/09/13/4] | ||
| 7 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 8 | --- | ||
| 9 | include/fcntl.h | 7 +++++++ | ||
| 10 | src/linux/name_to_handle_at.c | 11 +++++++++++ | ||
| 11 | src/linux/open_by_handle_at.c | 10 ++++++++++ | ||
| 12 | 3 files changed, 28 insertions(+) | ||
| 13 | create mode 100644 src/linux/name_to_handle_at.c | ||
| 14 | create mode 100644 src/linux/open_by_handle_at.c | ||
| 15 | |||
| 16 | diff --git a/include/fcntl.h b/include/fcntl.h | ||
| 17 | index 6d8edcd1..5c3defcb 100644 | ||
| 18 | --- a/include/fcntl.h | ||
| 19 | +++ b/include/fcntl.h | ||
| 20 | @@ -155,6 +155,11 @@ int lockf(int, int, off_t); | ||
| 21 | #define F_OWNER_PID 1 | ||
| 22 | #define F_OWNER_PGRP 2 | ||
| 23 | #define F_OWNER_GID 2 | ||
| 24 | +struct file_handle { | ||
| 25 | + unsigned int handle_bytes; | ||
| 26 | + int handle_type; | ||
| 27 | + unsigned char f_handle[]; | ||
| 28 | +}; | ||
| 29 | struct f_owner_ex { | ||
| 30 | int type; | ||
| 31 | pid_t pid; | ||
| 32 | @@ -170,6 +175,8 @@ struct f_owner_ex { | ||
| 33 | #define SPLICE_F_GIFT 8 | ||
| 34 | int fallocate(int, int, off_t, off_t); | ||
| 35 | #define fallocate64 fallocate | ||
| 36 | +int name_to_handle_at(int, const char *, struct file_handle *, int *, int); | ||
| 37 | +int open_by_handle_at(int, struct file_handle *, int); | ||
| 38 | ssize_t readahead(int, off_t, size_t); | ||
| 39 | int sync_file_range(int, off_t, off_t, unsigned); | ||
| 40 | ssize_t vmsplice(int, const struct iovec *, size_t, unsigned); | ||
| 41 | diff --git a/src/linux/name_to_handle_at.c b/src/linux/name_to_handle_at.c | ||
| 42 | new file mode 100644 | ||
| 43 | index 00000000..bb6f8007 | ||
| 44 | --- /dev/null | ||
| 45 | +++ b/src/linux/name_to_handle_at.c | ||
| 46 | @@ -0,0 +1,11 @@ | ||
| 47 | +#define _GNU_SOURCE | ||
| 48 | +#include <fcntl.h> | ||
| 49 | +#include "syscall.h" | ||
| 50 | + | ||
| 51 | +int name_to_handle_at(int dirfd, const char *pathname, | ||
| 52 | + struct file_handle *handle, | ||
| 53 | + int *mount_id, int flags) | ||
| 54 | +{ | ||
| 55 | + return syscall(SYS_name_to_handle_at, dirfd, | ||
| 56 | + pathname, handle, mount_id, flags); | ||
| 57 | +} | ||
| 58 | diff --git a/src/linux/open_by_handle_at.c b/src/linux/open_by_handle_at.c | ||
| 59 | new file mode 100644 | ||
| 60 | index 00000000..9bc93f14 | ||
| 61 | --- /dev/null | ||
| 62 | +++ b/src/linux/open_by_handle_at.c | ||
| 63 | @@ -0,0 +1,10 @@ | ||
| 64 | +#define _GNU_SOURCE | ||
| 65 | +#include <fcntl.h> | ||
| 66 | +#include "syscall.h" | ||
| 67 | + | ||
| 68 | +int open_by_handle_at(int mount_fd, struct file_handle *handle, | ||
| 69 | + int flags) | ||
| 70 | +{ | ||
| 71 | + return syscall(SYS_open_by_handle_at, mount_fd, | ||
| 72 | + handle, flags); | ||
| 73 | +} | ||
| 74 | -- | ||
| 75 | 2.19.0 | ||
| 76 | |||
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb index de1cfd0058..f6edf7de61 100644 --- a/meta/recipes-core/musl/musl_git.bb +++ b/meta/recipes-core/musl/musl_git.bb | |||
| @@ -11,6 +11,7 @@ PV = "1.1.20+git${SRCPV}" | |||
| 11 | 11 | ||
| 12 | SRC_URI = "git://git.musl-libc.org/musl \ | 12 | SRC_URI = "git://git.musl-libc.org/musl \ |
| 13 | file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \ | 13 | file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \ |
| 14 | file://0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch \ | ||
| 14 | " | 15 | " |
| 15 | 16 | ||
| 16 | S = "${WORKDIR}/git" | 17 | S = "${WORKDIR}/git" |
