> +/* open_tree() */ > +#ifndef OPEN_TREE_CLONE > +#define OPEN_TREE_CLONE 1 > +#endif > + > +#ifndef OPEN_TREE_CLOEXEC > +#define OPEN_TREE_CLOEXEC O_CLOEXEC > +#endif > + > +#ifndef __NR_open_tree > + #if defined __alpha__ > + #define __NR_open_tree 538 > + #elif defined _MIPS_SIM > + #if _MIPS_SIM == _MIPS_SIM_ABI32 /* o32 */ > + #define __NR_open_tree 4428 > + #endif > + #if _MIPS_SIM == _MIPS_SIM_NABI32 /* n32 */ > + #define __NR_open_tree 6428 > + #endif > + #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */ > + #define __NR_open_tree 5428 > + #endif > + #elif defined __ia64__ > + #define __NR_open_tree (428 + 1024) > + #else > + #define __NR_open_tree 428 > + #endif > +#endif > + > +/* move_mount() */ > +#ifndef MOVE_MOUNT_F_EMPTY_PATH > +#define MOVE_MOUNT_F_EMPTY_PATH 0x00000004 /* Empty from path permitted */ > +#endif > + > +#ifndef __NR_move_mount > + #if defined __alpha__ > + #define __NR_move_mount 539 > + #elif defined _MIPS_SIM > + #if _MIPS_SIM == _MIPS_SIM_ABI32 /* o32 */ > + #define __NR_move_mount 4429 > + #endif > + #if _MIPS_SIM == _MIPS_SIM_NABI32 /* n32 */ > + #define __NR_move_mount 6429 > + #endif > + #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */ > + #define __NR_move_mount 5429 > + #endif > + #elif defined __ia64__ > + #define __NR_move_mount (428 + 1024) > + #else > + #define __NR_move_mount 429 > + #endif > +#endif > + > +static inline int sys_open_tree(int dfd, const char *filename, unsigned int flags) > +{ > + return syscall(__NR_open_tree, dfd, filename, flags); > +} > + > +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); > +} Not directly new in your patch, but I wish we'd have a central header for missing UAPI bits in xfstests instead of spreading it over various files. Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>