Message ID | 20241011-work-overlayfs-v2-3-1b43328c5a31@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ovl: specify layers via file descriptors | expand |
On Fri, Oct 11, 2024 at 11:46 PM Christian Brauner <brauner@kernel.org> wrote: > > So that we don't have to redefine the same system calls over and over. > > Signed-off-by: Christian Brauner <brauner@kernel.org> Heh, I forgot that this selftest existed, even though I clearly reviewed it I will even run it from now on :) Reviewed-by: Amir Goldstein <amir73il@gmail.com> > --- > .../selftests/filesystems/overlayfs/dev_in_maps.c | 27 +------------- > .../selftests/filesystems/overlayfs/wrappers.h | 43 ++++++++++++++++++++++ > 2 files changed, 44 insertions(+), 26 deletions(-) > > diff --git a/tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c b/tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c > index 2862aae58b79acbe175ab6b36b42798bb99a2225..3b796264223f81fc753d0adaeccc04077023520b 100644 > --- a/tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c > +++ b/tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c > @@ -17,32 +17,7 @@ > > #include "../../kselftest.h" > #include "log.h" > - > -static int sys_fsopen(const char *fsname, unsigned int flags) > -{ > - return syscall(__NR_fsopen, fsname, flags); > -} > - > -static int sys_fsconfig(int fd, unsigned int cmd, const char *key, const char *value, int aux) > -{ > - return syscall(__NR_fsconfig, fd, cmd, key, value, aux); > -} > - > -static int sys_fsmount(int fd, unsigned int flags, unsigned int attr_flags) > -{ > - return syscall(__NR_fsmount, fd, flags, attr_flags); > -} > -static int sys_mount(const char *src, const char *tgt, const char *fst, > - unsigned long flags, const void *data) > -{ > - return syscall(__NR_mount, src, tgt, fst, flags, data); > -} > -static int sys_move_mount(int from_dfd, const char *from_pathname, > - int to_dfd, const char *to_pathname, > - unsigned int flags) > -{ > - return syscall(__NR_move_mount, from_dfd, from_pathname, to_dfd, to_pathname, flags); > -} > +#include "wrappers.h" > > static long get_file_dev_and_inode(void *addr, struct statx *stx) > { > diff --git a/tools/testing/selftests/filesystems/overlayfs/wrappers.h b/tools/testing/selftests/filesystems/overlayfs/wrappers.h > new file mode 100644 > index 0000000000000000000000000000000000000000..4f99e10f7f018fd9a7be5263f68d34807da4c53c > --- /dev/null > +++ b/tools/testing/selftests/filesystems/overlayfs/wrappers.h > @@ -0,0 +1,43 @@ > +// SPDX-License-Identifier: GPL-2.0 > +// > +#ifndef __SELFTEST_OVERLAYFS_WRAPPERS_H__ > +#define __SELFTEST_OVERLAYFS_WRAPPERS_H__ > + > +#define _GNU_SOURCE > + > +#include <linux/types.h> > +#include <linux/mount.h> > +#include <sys/syscall.h> > + > +static inline int sys_fsopen(const char *fsname, unsigned int flags) > +{ > + return syscall(__NR_fsopen, fsname, flags); > +} > + > +static inline int sys_fsconfig(int fd, unsigned int cmd, const char *key, > + const char *value, int aux) > +{ > + return syscall(__NR_fsconfig, fd, cmd, key, value, aux); > +} > + > +static inline int sys_fsmount(int fd, unsigned int flags, > + unsigned int attr_flags) > +{ > + return syscall(__NR_fsmount, fd, flags, attr_flags); > +} > + > +static inline int sys_mount(const char *src, const char *tgt, const char *fst, > + unsigned long flags, const void *data) > +{ > + return syscall(__NR_mount, src, tgt, fst, flags, data); > +} > + > +static inline int sys_move_mount(int from_dfd, const char *from_pathname, > + int to_dfd, const char *to_pathname, > + unsigned int flags) > +{ > + return syscall(__NR_move_mount, from_dfd, from_pathname, to_dfd, > + to_pathname, flags); > +} > + > +#endif > > -- > 2.45.2 >
diff --git a/tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c b/tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c index 2862aae58b79acbe175ab6b36b42798bb99a2225..3b796264223f81fc753d0adaeccc04077023520b 100644 --- a/tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c +++ b/tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c @@ -17,32 +17,7 @@ #include "../../kselftest.h" #include "log.h" - -static int sys_fsopen(const char *fsname, unsigned int flags) -{ - return syscall(__NR_fsopen, fsname, flags); -} - -static int sys_fsconfig(int fd, unsigned int cmd, const char *key, const char *value, int aux) -{ - return syscall(__NR_fsconfig, fd, cmd, key, value, aux); -} - -static int sys_fsmount(int fd, unsigned int flags, unsigned int attr_flags) -{ - return syscall(__NR_fsmount, fd, flags, attr_flags); -} -static int sys_mount(const char *src, const char *tgt, const char *fst, - unsigned long flags, const void *data) -{ - return syscall(__NR_mount, src, tgt, fst, flags, data); -} -static int sys_move_mount(int from_dfd, const char *from_pathname, - int to_dfd, const char *to_pathname, - unsigned int flags) -{ - return syscall(__NR_move_mount, from_dfd, from_pathname, to_dfd, to_pathname, flags); -} +#include "wrappers.h" static long get_file_dev_and_inode(void *addr, struct statx *stx) { diff --git a/tools/testing/selftests/filesystems/overlayfs/wrappers.h b/tools/testing/selftests/filesystems/overlayfs/wrappers.h new file mode 100644 index 0000000000000000000000000000000000000000..4f99e10f7f018fd9a7be5263f68d34807da4c53c --- /dev/null +++ b/tools/testing/selftests/filesystems/overlayfs/wrappers.h @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: GPL-2.0 +// +#ifndef __SELFTEST_OVERLAYFS_WRAPPERS_H__ +#define __SELFTEST_OVERLAYFS_WRAPPERS_H__ + +#define _GNU_SOURCE + +#include <linux/types.h> +#include <linux/mount.h> +#include <sys/syscall.h> + +static inline int sys_fsopen(const char *fsname, unsigned int flags) +{ + return syscall(__NR_fsopen, fsname, flags); +} + +static inline int sys_fsconfig(int fd, unsigned int cmd, const char *key, + const char *value, int aux) +{ + return syscall(__NR_fsconfig, fd, cmd, key, value, aux); +} + +static inline int sys_fsmount(int fd, unsigned int flags, + unsigned int attr_flags) +{ + return syscall(__NR_fsmount, fd, flags, attr_flags); +} + +static inline int sys_mount(const char *src, const char *tgt, const char *fst, + unsigned long flags, const void *data) +{ + return syscall(__NR_mount, src, tgt, fst, flags, data); +} + +static inline int sys_move_mount(int from_dfd, const char *from_pathname, + int to_dfd, const char *to_pathname, + unsigned int flags) +{ + return syscall(__NR_move_mount, from_dfd, from_pathname, to_dfd, + to_pathname, flags); +} + +#endif
So that we don't have to redefine the same system calls over and over. Signed-off-by: Christian Brauner <brauner@kernel.org> --- .../selftests/filesystems/overlayfs/dev_in_maps.c | 27 +------------- .../selftests/filesystems/overlayfs/wrappers.h | 43 ++++++++++++++++++++++ 2 files changed, 44 insertions(+), 26 deletions(-)