tree: https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git mount-reordered head: 3a5f2189bf8730d87d69f33b0f015857f8369c85 commit: 53510f9ba9c45e59b91895216e85852d4e72605d [10/38] [RFC] fs: Add a move_mount() system call config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: git checkout 53510f9ba9c45e59b91895216e85852d4e72605d # save the attached .config to linux build tree make ARCH=i386 Note: the vfs/mount-reordered HEAD 3a5f2189bf8730d87d69f33b0f015857f8369c85 builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): fs/namespace.c: In function '__do_sys_move_mount': fs/namespace.c:3132:15: error: 'MOVE_MOUNT__MASK' undeclared (first use in this function); did you mean 'MS_RMT_MASK'? if (flags & ~MOVE_MOUNT__MASK) ^~~~~~~~~~~~~~~~ MS_RMT_MASK fs/namespace.c:3132:15: note: each undeclared identifier is reported only once for each function it appears in >> fs/namespace.c:3140:14: error: 'MOVE_MOUNT_F_SYMLINKS' undeclared (first use in this function); did you mean 'MOVE_MOUNT__MASK'? if (flags & MOVE_MOUNT_F_SYMLINKS) lflags |= LOOKUP_FOLLOW; ^~~~~~~~~~~~~~~~~~~~~ MOVE_MOUNT__MASK >> fs/namespace.c:3141:14: error: 'MOVE_MOUNT_F_AUTOMOUNTS' undeclared (first use in this function); did you mean 'MOVE_MOUNT_F_SYMLINKS'? if (flags & MOVE_MOUNT_F_AUTOMOUNTS) lflags |= LOOKUP_AUTOMOUNT; ^~~~~~~~~~~~~~~~~~~~~~~ MOVE_MOUNT_F_SYMLINKS >> fs/namespace.c:3142:14: error: 'MOVE_MOUNT_F_EMPTY_PATH' undeclared (first use in this function); did you mean 'MOVE_MOUNT_F_AUTOMOUNTS'? if (flags & MOVE_MOUNT_F_EMPTY_PATH) lflags |= LOOKUP_EMPTY; ^~~~~~~~~~~~~~~~~~~~~~~ MOVE_MOUNT_F_AUTOMOUNTS >> fs/namespace.c:3149:14: error: 'MOVE_MOUNT_T_SYMLINKS' undeclared (first use in this function); did you mean 'MOVE_MOUNT_F_SYMLINKS'? if (flags & MOVE_MOUNT_T_SYMLINKS) lflags |= LOOKUP_FOLLOW; ^~~~~~~~~~~~~~~~~~~~~ MOVE_MOUNT_F_SYMLINKS >> fs/namespace.c:3150:14: error: 'MOVE_MOUNT_T_AUTOMOUNTS' undeclared (first use in this function); did you mean 'MOVE_MOUNT_F_AUTOMOUNTS'? if (flags & MOVE_MOUNT_T_AUTOMOUNTS) lflags |= LOOKUP_AUTOMOUNT; ^~~~~~~~~~~~~~~~~~~~~~~ MOVE_MOUNT_F_AUTOMOUNTS >> fs/namespace.c:3151:14: error: 'MOVE_MOUNT_T_EMPTY_PATH' undeclared (first use in this function); did you mean 'MOVE_MOUNT_F_EMPTY_PATH'? if (flags & MOVE_MOUNT_T_EMPTY_PATH) lflags |= LOOKUP_EMPTY; ^~~~~~~~~~~~~~~~~~~~~~~ MOVE_MOUNT_F_EMPTY_PATH vim +3140 fs/namespace.c 3114 3115 /* 3116 * Move a mount from one place to another. 3117 * 3118 * Note the flags value is a combination of MOVE_MOUNT_* flags. 3119 */ 3120 SYSCALL_DEFINE5(move_mount, 3121 int, from_dfd, const char *, from_pathname, 3122 int, to_dfd, const char *, to_pathname, 3123 unsigned int, flags) 3124 { 3125 struct path from_path, to_path; 3126 unsigned int lflags; 3127 int ret = 0; 3128 3129 if (!may_mount()) 3130 return -EPERM; 3131 > 3132 if (flags & ~MOVE_MOUNT__MASK) 3133 return -EINVAL; 3134 3135 /* If someone gives a pathname, they aren't permitted to move 3136 * from an fd that requires unmount as we can't get at the flag 3137 * to clear it afterwards. 3138 */ 3139 lflags = 0; > 3140 if (flags & MOVE_MOUNT_F_SYMLINKS) lflags |= LOOKUP_FOLLOW; > 3141 if (flags & MOVE_MOUNT_F_AUTOMOUNTS) lflags |= LOOKUP_AUTOMOUNT; > 3142 if (flags & MOVE_MOUNT_F_EMPTY_PATH) lflags |= LOOKUP_EMPTY; 3143 3144 ret = user_path_at(from_dfd, from_pathname, lflags, &from_path); 3145 if (ret < 0) 3146 return ret; 3147 3148 lflags = 0; > 3149 if (flags & MOVE_MOUNT_T_SYMLINKS) lflags |= LOOKUP_FOLLOW; > 3150 if (flags & MOVE_MOUNT_T_AUTOMOUNTS) lflags |= LOOKUP_AUTOMOUNT; > 3151 if (flags & MOVE_MOUNT_T_EMPTY_PATH) lflags |= LOOKUP_EMPTY; 3152 3153 ret = user_path_at(to_dfd, to_pathname, lflags, &to_path); 3154 if (ret < 0) 3155 goto out_from; 3156 3157 ret = security_move_mount(&from_path, &to_path); 3158 if (ret < 0) 3159 goto out_to; 3160 3161 ret = do_move_mount(&from_path, &to_path); 3162 3163 out_to: 3164 path_put(&to_path); 3165 out_from: 3166 path_put(&from_path); 3167 return ret; 3168 } 3169 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip