tree: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git overlayfs-next head: 17d55447441297291dff3c860ee30c9968c165b8 commit: 2c856d79afbce7c2649e0119fb67e9e63f76d663 [25/26] ovl: clean up getting lower layers config: i386-randconfig-x075-201745 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: git checkout 2c856d79afbce7c2649e0119fb67e9e63f76d663 # save the attached .config to linux build tree make ARCH=i386 Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): fs//overlayfs/super.c: In function 'ovl_fill_super': >> fs//overlayfs/super.c:1133:2: warning: 'numlower' may be used uninitialized in this function [-Wmaybe-uninitialized] for (i = 0; i < numlower; i++) ^~~ fs//overlayfs/super.c:1070:25: note: 'numlower' was declared here unsigned int stacklen, numlower, i; ^~~~~~~~ >> fs//overlayfs/super.c:1069:15: warning: 'stack' may be used uninitialized in this function [-Wmaybe-uninitialized] struct path *stack; ^~~~~ vim +/numlower +1133 fs//overlayfs/super.c 82d1e76b Miklos Szeredi 2017-11-08 1063 2c856d79 Miklos Szeredi 2017-11-08 1064 static struct ovl_entry *ovl_get_lowerstack(struct super_block *sb, 2c856d79 Miklos Szeredi 2017-11-08 1065 struct ovl_fs *ufs) b4bf599b Miklos Szeredi 2017-11-08 1066 { b4bf599b Miklos Szeredi 2017-11-08 1067 int err; b4bf599b Miklos Szeredi 2017-11-08 1068 char *lowertmp, *lower; b4bf599b Miklos Szeredi 2017-11-08 @1069 struct path *stack; b4bf599b Miklos Szeredi 2017-11-08 1070 unsigned int stacklen, numlower, i; b4bf599b Miklos Szeredi 2017-11-08 1071 bool remote = false; 2c856d79 Miklos Szeredi 2017-11-08 1072 struct ovl_entry *oe; b4bf599b Miklos Szeredi 2017-11-08 1073 b4bf599b Miklos Szeredi 2017-11-08 1074 err = -ENOMEM; b4bf599b Miklos Szeredi 2017-11-08 1075 lowertmp = kstrdup(ufs->config.lowerdir, GFP_KERNEL); b4bf599b Miklos Szeredi 2017-11-08 1076 if (!lowertmp) 2c856d79 Miklos Szeredi 2017-11-08 1077 goto out_err; b4bf599b Miklos Szeredi 2017-11-08 1078 b4bf599b Miklos Szeredi 2017-11-08 1079 err = -EINVAL; b4bf599b Miklos Szeredi 2017-11-08 1080 stacklen = ovl_split_lowerdirs(lowertmp); b4bf599b Miklos Szeredi 2017-11-08 1081 if (stacklen > OVL_MAX_STACK) { b4bf599b Miklos Szeredi 2017-11-08 1082 pr_err("overlayfs: too many lower directories, limit is %d\n", b4bf599b Miklos Szeredi 2017-11-08 1083 OVL_MAX_STACK); 2c856d79 Miklos Szeredi 2017-11-08 1084 goto out_err; b4bf599b Miklos Szeredi 2017-11-08 1085 } else if (!ufs->config.upperdir && stacklen == 1) { b4bf599b Miklos Szeredi 2017-11-08 1086 pr_err("overlayfs: at least 2 lowerdir are needed while upperdir nonexistent\n"); 2c856d79 Miklos Szeredi 2017-11-08 1087 goto out_err; b4bf599b Miklos Szeredi 2017-11-08 1088 } b4bf599b Miklos Szeredi 2017-11-08 1089 b4bf599b Miklos Szeredi 2017-11-08 1090 err = -ENOMEM; b4bf599b Miklos Szeredi 2017-11-08 1091 stack = kcalloc(stacklen, sizeof(struct path), GFP_KERNEL); b4bf599b Miklos Szeredi 2017-11-08 1092 if (!stack) 2c856d79 Miklos Szeredi 2017-11-08 1093 goto out_err; b4bf599b Miklos Szeredi 2017-11-08 1094 b4bf599b Miklos Szeredi 2017-11-08 1095 err = -EINVAL; b4bf599b Miklos Szeredi 2017-11-08 1096 lower = lowertmp; b4bf599b Miklos Szeredi 2017-11-08 1097 for (numlower = 0; numlower < stacklen; numlower++) { b4bf599b Miklos Szeredi 2017-11-08 1098 err = ovl_lower_dir(lower, &stack[numlower], ufs, b4bf599b Miklos Szeredi 2017-11-08 1099 &sb->s_stack_depth, &remote); b4bf599b Miklos Szeredi 2017-11-08 1100 if (err) 2c856d79 Miklos Szeredi 2017-11-08 1101 goto out_err; b4bf599b Miklos Szeredi 2017-11-08 1102 b4bf599b Miklos Szeredi 2017-11-08 1103 lower = strchr(lower, '\0') + 1; b4bf599b Miklos Szeredi 2017-11-08 1104 } b4bf599b Miklos Szeredi 2017-11-08 1105 b4bf599b Miklos Szeredi 2017-11-08 1106 err = -EINVAL; b4bf599b Miklos Szeredi 2017-11-08 1107 sb->s_stack_depth++; b4bf599b Miklos Szeredi 2017-11-08 1108 if (sb->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) { b4bf599b Miklos Szeredi 2017-11-08 1109 pr_err("overlayfs: maximum fs stacking depth exceeded\n"); 2c856d79 Miklos Szeredi 2017-11-08 1110 goto out_err; b4bf599b Miklos Szeredi 2017-11-08 1111 } b4bf599b Miklos Szeredi 2017-11-08 1112 2c856d79 Miklos Szeredi 2017-11-08 1113 err = ovl_get_lower_layers(ufs, stack, numlower); 2c856d79 Miklos Szeredi 2017-11-08 1114 if (err) 2c856d79 Miklos Szeredi 2017-11-08 1115 goto out_err; 2c856d79 Miklos Szeredi 2017-11-08 1116 2c856d79 Miklos Szeredi 2017-11-08 1117 err = -ENOMEM; 2c856d79 Miklos Szeredi 2017-11-08 1118 oe = ovl_alloc_entry(numlower); 2c856d79 Miklos Szeredi 2017-11-08 1119 if (!oe) 2c856d79 Miklos Szeredi 2017-11-08 1120 goto out_err; 2c856d79 Miklos Szeredi 2017-11-08 1121 2c856d79 Miklos Szeredi 2017-11-08 1122 for (i = 0; i < numlower; i++) { 2c856d79 Miklos Szeredi 2017-11-08 1123 oe->lowerstack[i].dentry = dget(stack[i].dentry); 2c856d79 Miklos Szeredi 2017-11-08 1124 oe->lowerstack[i].layer = &ufs->lower_layers[i]; 2c856d79 Miklos Szeredi 2017-11-08 1125 } b4bf599b Miklos Szeredi 2017-11-08 1126 b4bf599b Miklos Szeredi 2017-11-08 1127 if (remote) b4bf599b Miklos Szeredi 2017-11-08 1128 sb->s_d_op = &ovl_reval_dentry_operations; b4bf599b Miklos Szeredi 2017-11-08 1129 else b4bf599b Miklos Szeredi 2017-11-08 1130 sb->s_d_op = &ovl_dentry_operations; b4bf599b Miklos Szeredi 2017-11-08 1131 b4bf599b Miklos Szeredi 2017-11-08 1132 out: b4bf599b Miklos Szeredi 2017-11-08 @1133 for (i = 0; i < numlower; i++) b4bf599b Miklos Szeredi 2017-11-08 1134 path_put(&stack[i]); b4bf599b Miklos Szeredi 2017-11-08 1135 kfree(stack); 2c856d79 Miklos Szeredi 2017-11-08 1136 kfree(lowertmp); 2c856d79 Miklos Szeredi 2017-11-08 1137 2c856d79 Miklos Szeredi 2017-11-08 1138 return oe; 2c856d79 Miklos Szeredi 2017-11-08 1139 2c856d79 Miklos Szeredi 2017-11-08 1140 out_err: 2c856d79 Miklos Szeredi 2017-11-08 1141 oe = ERR_PTR(err); b4bf599b Miklos Szeredi 2017-11-08 1142 goto out; b4bf599b Miklos Szeredi 2017-11-08 1143 } b4bf599b Miklos Szeredi 2017-11-08 1144 :::::: The code at line 1133 was first introduced by commit :::::: b4bf599bd9ef3361bedaab2ee2edd945fe1d290c ovl: split out ovl_get_lowerstack() from ovl_fill_super() :::::: TO: Miklos Szeredi <mszeredi@xxxxxxxxxx> :::::: CC: Miklos Szeredi <mszeredi@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip