From: kernel test robot <lkp@intel.com>
To: Yunlong Xing <yunlong.xing@unisoc.com>,
miklos@szeredi.hu, amir73il@gmail.com
Cc: oe-kbuild-all@lists.linux.dev, linux-unionfs@vger.kernel.org,
linux-kernel@vger.kernel.org, zhiguo.niu@unisoc.com,
hongyu.jin@unisoc.com, yunlongxing23@gmail.com
Subject: Re: [PATCH V2] ovl: fix mount fail because the upper doesn't have space
Date: Wed, 19 Jul 2023 21:40:21 +0800 [thread overview]
Message-ID: <202307192158.lNbgYfit-lkp@intel.com> (raw)
In-Reply-To: <20230719085434.154834-1-yunlong.xing@unisoc.com>
Hi Yunlong,
kernel test robot noticed the following build warnings:
[auto build test WARNING on mszeredi-vfs/overlayfs-next]
[also build test WARNING on linus/master]
[cannot apply to mszeredi-vfs/next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Yunlong-Xing/ovl-fix-mount-fail-because-the-upper-doesn-t-have-space/20230719-165654
base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git overlayfs-next
patch link: https://lore.kernel.org/r/20230719085434.154834-1-yunlong.xing%40unisoc.com
patch subject: [PATCH V2] ovl: fix mount fail because the upper doesn't have space
config: i386-randconfig-i002-20230718 (https://download.01.org/0day-ci/archive/20230719/202307192158.lNbgYfit-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230719/202307192158.lNbgYfit-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307192158.lNbgYfit-lkp@intel.com/
All warnings (new ones prefixed by >>):
fs/overlayfs/super.c: In function 'ovl_make_workdir':
fs/overlayfs/super.c:1192:25: warning: missing terminating " character
1192 | pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
| ^
fs/overlayfs/super.c:1193:28: warning: missing terminating " character
1193 | err");
| ^
fs/overlayfs/super.c:2065:23: error: unterminated argument list invoking macro "pr_warn"
2065 | module_exit(ovl_exit);
| ^
fs/overlayfs/super.c:1192:17: error: 'pr_warn' undeclared (first use in this function)
1192 | pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
| ^~~~~~~
fs/overlayfs/super.c:1192:17: note: each undeclared identifier is reported only once for each function it appears in
fs/overlayfs/super.c:1192:24: error: expected ';' at end of input
1192 | pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
| ^
| ;
......
fs/overlayfs/super.c:1191:9: note: '-Wmisleading-indentation' is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers
1191 | if (!rename_whiteout)
| ^~
fs/overlayfs/super.c:1191:9: note: adding '-flarge-source-files' will allow for more column-tracking support, at the expense of compilation time and memory
fs/overlayfs/super.c:1192:17: error: expected declaration or statement at end of input
1192 | pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
| ^~~~~~~
fs/overlayfs/super.c:1188:17: error: label 'out' used but not defined
1188 | goto out;
| ^~~~
>> fs/overlayfs/super.c:1144:13: warning: unused variable 'fh_type' [-Wunused-variable]
1144 | int fh_type;
| ^~~~~~~
fs/overlayfs/super.c: At top level:
fs/overlayfs/super.c:1136:12: warning: 'ovl_make_workdir' defined but not used [-Wunused-function]
1136 | static int ovl_make_workdir(struct super_block *sb, struct ovl_fs *ofs,
| ^~~~~~~~~~~~~~~~
fs/overlayfs/super.c:1118:12: warning: 'ovl_create_volatile_dirty' defined but not used [-Wunused-function]
1118 | static int ovl_create_volatile_dirty(struct ovl_fs *ofs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
fs/overlayfs/super.c:969:12: warning: 'ovl_get_upper' defined but not used [-Wunused-function]
969 | static int ovl_get_upper(struct super_block *sb, struct ovl_fs *ofs,
| ^~~~~~~~~~~~~
>> fs/overlayfs/super.c:926:36: warning: 'ovl_user_xattr_handlers' defined but not used [-Wunused-variable]
926 | static const struct xattr_handler *ovl_user_xattr_handlers[] = {
| ^~~~~~~~~~~~~~~~~~~~~~~
>> fs/overlayfs/super.c:920:36: warning: 'ovl_trusted_xattr_handlers' defined but not used [-Wunused-variable]
920 | static const struct xattr_handler *ovl_trusted_xattr_handlers[] = {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
fs/overlayfs/super.c:859:13: warning: 'ovl_workdir_ok' defined but not used [-Wunused-function]
859 | static bool ovl_workdir_ok(struct dentry *workdir, struct dentry *upperdir)
| ^~~~~~~~~~~~~~
fs/overlayfs/super.c:816:12: warning: 'ovl_lower_dir' defined but not used [-Wunused-function]
816 | static int ovl_lower_dir(const char *name, struct path *path,
| ^~~~~~~~~~~~~
fs/overlayfs/super.c:580:12: warning: 'ovl_fs_params_verify' defined but not used [-Wunused-function]
580 | static int ovl_fs_params_verify(const struct ovl_fs_context *ctx,
| ^~~~~~~~~~~~~~~~~~~~
fs/overlayfs/super.c:493:12: warning: 'ovl_parse_param' defined but not used [-Wunused-function]
493 | static int ovl_parse_param(struct fs_context *fc, struct fs_parameter *param)
| ^~~~~~~~~~~~~~~
>> fs/overlayfs/super.c:442:38: warning: 'ovl_super_operations' defined but not used [-Wunused-const-variable=]
442 | static const struct super_operations ovl_super_operations = {
| ^~~~~~~~~~~~~~~~~~~~
fs/overlayfs/super.c:420:12: warning: 'ovl_reconfigure' defined but not used [-Wunused-function]
420 | static int ovl_reconfigure(struct fs_context *fc)
| ^~~~~~~~~~~~~~~
>> fs/overlayfs/super.c:166:39: warning: 'ovl_dentry_operations' defined but not used [-Wunused-const-variable=]
166 | static const struct dentry_operations ovl_dentry_operations = {
| ^~~~~~~~~~~~~~~~~~~~~
vim +/fh_type +1144 fs/overlayfs/super.c
c86243b090bc25 Vivek Goyal 2020-08-31 1135
146d62e5a5867f Amir Goldstein 2019-04-18 1136 static int ovl_make_workdir(struct super_block *sb, struct ovl_fs *ofs,
2d3430875a3a97 Al Viro 2022-08-04 1137 const struct path *workpath)
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1138 {
08f4c7c86d4cf1 Miklos Szeredi 2020-06-04 1139 struct vfsmount *mnt = ovl_upper_mnt(ofs);
2b1a77461f1602 Miklos Szeredi 2022-09-24 1140 struct dentry *workdir;
2b1a77461f1602 Miklos Szeredi 2022-09-24 1141 struct file *tmpfile;
d80172c2d85947 Amir Goldstein 2020-02-20 1142 bool rename_whiteout;
d80172c2d85947 Amir Goldstein 2020-02-20 1143 bool d_type;
e487d889b7e3e8 Amir Goldstein 2017-11-07 @1144 int fh_type;
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1145 int err;
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1146
2ba9d57e650448 Amir Goldstein 2018-01-03 1147 err = mnt_want_write(mnt);
2ba9d57e650448 Amir Goldstein 2018-01-03 1148 if (err)
2ba9d57e650448 Amir Goldstein 2018-01-03 1149 return err;
2ba9d57e650448 Amir Goldstein 2018-01-03 1150
235ce9ed96bc62 Amir Goldstein 2020-08-30 1151 workdir = ovl_workdir_create(ofs, OVL_WORKDIR_NAME, false);
235ce9ed96bc62 Amir Goldstein 2020-08-30 1152 err = PTR_ERR(workdir);
235ce9ed96bc62 Amir Goldstein 2020-08-30 1153 if (IS_ERR_OR_NULL(workdir))
2ba9d57e650448 Amir Goldstein 2018-01-03 1154 goto out;
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1155
235ce9ed96bc62 Amir Goldstein 2020-08-30 1156 ofs->workdir = workdir;
235ce9ed96bc62 Amir Goldstein 2020-08-30 1157
146d62e5a5867f Amir Goldstein 2019-04-18 1158 err = ovl_setup_trap(sb, ofs->workdir, &ofs->workdir_trap, "workdir");
146d62e5a5867f Amir Goldstein 2019-04-18 1159 if (err)
146d62e5a5867f Amir Goldstein 2019-04-18 1160 goto out;
146d62e5a5867f Amir Goldstein 2019-04-18 1161
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1162 /*
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1163 * Upper should support d_type, else whiteouts are visible. Given
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1164 * workdir and upper are on same fs, we can do iterate_dir() on
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1165 * workdir. This check requires successful creation of workdir in
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1166 * previous step.
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1167 */
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1168 err = ovl_check_d_type_supported(workpath);
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1169 if (err < 0)
2ba9d57e650448 Amir Goldstein 2018-01-03 1170 goto out;
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1171
d80172c2d85947 Amir Goldstein 2020-02-20 1172 d_type = err;
d80172c2d85947 Amir Goldstein 2020-02-20 1173 if (!d_type)
1bd0a3aea4357e lijiazi 2019-12-16 1174 pr_warn("upper fs needs to support d_type.\n");
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1175
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1176 /* Check if upper/work fs supports O_TMPFILE */
2b1a77461f1602 Miklos Szeredi 2022-09-24 1177 tmpfile = ovl_do_tmpfile(ofs, ofs->workdir, S_IFREG | 0);
2b1a77461f1602 Miklos Szeredi 2022-09-24 1178 ofs->tmpfile = !IS_ERR(tmpfile);
ad204488d3046b Miklos Szeredi 2017-11-10 1179 if (ofs->tmpfile)
2b1a77461f1602 Miklos Szeredi 2022-09-24 1180 fput(tmpfile);
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1181 else
1bd0a3aea4357e lijiazi 2019-12-16 1182 pr_warn("upper fs does not support tmpfile.\n");
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1183
cad218ab332078 Amir Goldstein 2020-02-20 1184
cad218ab332078 Amir Goldstein 2020-02-20 1185 /* Check if upper/work fs supports RENAME_WHITEOUT */
576bb263450bbb Christian Brauner 2022-04-04 1186 err = ovl_check_rename_whiteout(ofs);
a64df2da371f93 Yunlong Xing 2023-07-19 1187 if (err < 0 && err != -ENOSPC)
cad218ab332078 Amir Goldstein 2020-02-20 1188 goto out;
cad218ab332078 Amir Goldstein 2020-02-20 1189
a64df2da371f93 Yunlong Xing 2023-07-19 1190 rename_whiteout = err > 0;
d80172c2d85947 Amir Goldstein 2020-02-20 1191 if (!rename_whiteout)
a64df2da371f93 Yunlong Xing 2023-07-19 1192 pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
a64df2da371f93 Yunlong Xing 2023-07-19 1193 err");
cad218ab332078 Amir Goldstein 2020-02-20 1194
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1195 /*
2d2f2d7322ff43 Miklos Szeredi 2020-12-14 1196 * Check if upper/work fs supports (trusted|user).overlay.* xattr
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1197 */
c914c0e27eb084 Amir Goldstein 2022-04-04 1198 err = ovl_setxattr(ofs, ofs->workdir, OVL_XATTR_OPAQUE, "0", 1);
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1199 if (err) {
b10b85fe5149ee Miklos Szeredi 2022-07-27 1200 pr_warn("failed to set xattr on upper\n");
ad204488d3046b Miklos Szeredi 2017-11-10 1201 ofs->noxattr = true;
af5f2396b671c9 Amir Goldstein 2023-06-17 1202 if (ovl_redirect_follow(ofs)) {
af5f2396b671c9 Amir Goldstein 2023-06-17 1203 ofs->config.redirect_mode = OVL_REDIRECT_NOFOLLOW;
af5f2396b671c9 Amir Goldstein 2023-06-17 1204 pr_warn("...falling back to redirect_dir=nofollow.\n");
af5f2396b671c9 Amir Goldstein 2023-06-17 1205 }
af5f2396b671c9 Amir Goldstein 2023-06-17 1206 if (ofs->config.metacopy) {
d5791044d2e574 Vivek Goyal 2018-05-11 1207 ofs->config.metacopy = false;
af5f2396b671c9 Amir Goldstein 2023-06-17 1208 pr_warn("...falling back to metacopy=off.\n");
af5f2396b671c9 Amir Goldstein 2023-06-17 1209 }
af5f2396b671c9 Amir Goldstein 2023-06-17 1210 if (ofs->config.index) {
af5f2396b671c9 Amir Goldstein 2023-06-17 1211 ofs->config.index = false;
af5f2396b671c9 Amir Goldstein 2023-06-17 1212 pr_warn("...falling back to index=off.\n");
b0e0f69731cde2 Amir Goldstein 2021-03-09 1213 }
b0e0f69731cde2 Amir Goldstein 2021-03-09 1214 /*
b0e0f69731cde2 Amir Goldstein 2021-03-09 1215 * xattr support is required for persistent st_ino.
b0e0f69731cde2 Amir Goldstein 2021-03-09 1216 * Without persistent st_ino, xino=auto falls back to xino=off.
b0e0f69731cde2 Amir Goldstein 2021-03-09 1217 */
b0e0f69731cde2 Amir Goldstein 2021-03-09 1218 if (ofs->config.xino == OVL_XINO_AUTO) {
b0e0f69731cde2 Amir Goldstein 2021-03-09 1219 ofs->config.xino = OVL_XINO_OFF;
b10b85fe5149ee Miklos Szeredi 2022-07-27 1220 pr_warn("...falling back to xino=off.\n");
b0e0f69731cde2 Amir Goldstein 2021-03-09 1221 }
b10b85fe5149ee Miklos Szeredi 2022-07-27 1222 if (err == -EPERM && !ofs->config.userxattr)
b10b85fe5149ee Miklos Szeredi 2022-07-27 1223 pr_info("try mounting with 'userxattr' option\n");
2ba9d57e650448 Amir Goldstein 2018-01-03 1224 err = 0;
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1225 } else {
c914c0e27eb084 Amir Goldstein 2022-04-04 1226 ovl_removexattr(ofs, ofs->workdir, OVL_XATTR_OPAQUE);
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1227 }
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1228
d80172c2d85947 Amir Goldstein 2020-02-20 1229 /*
d80172c2d85947 Amir Goldstein 2020-02-20 1230 * We allowed sub-optimal upper fs configuration and don't want to break
d80172c2d85947 Amir Goldstein 2020-02-20 1231 * users over kernel upgrade, but we never allowed remote upper fs, so
d80172c2d85947 Amir Goldstein 2020-02-20 1232 * we can enforce strict requirements for remote upper fs.
d80172c2d85947 Amir Goldstein 2020-02-20 1233 */
d80172c2d85947 Amir Goldstein 2020-02-20 1234 if (ovl_dentry_remote(ofs->workdir) &&
d80172c2d85947 Amir Goldstein 2020-02-20 1235 (!d_type || !rename_whiteout || ofs->noxattr)) {
d80172c2d85947 Amir Goldstein 2020-02-20 1236 pr_err("upper fs missing required features.\n");
d80172c2d85947 Amir Goldstein 2020-02-20 1237 err = -EINVAL;
d80172c2d85947 Amir Goldstein 2020-02-20 1238 goto out;
d80172c2d85947 Amir Goldstein 2020-02-20 1239 }
d80172c2d85947 Amir Goldstein 2020-02-20 1240
c86243b090bc25 Vivek Goyal 2020-08-31 1241 /*
c86243b090bc25 Vivek Goyal 2020-08-31 1242 * For volatile mount, create a incompat/volatile/dirty file to keep
c86243b090bc25 Vivek Goyal 2020-08-31 1243 * track of it.
c86243b090bc25 Vivek Goyal 2020-08-31 1244 */
c86243b090bc25 Vivek Goyal 2020-08-31 1245 if (ofs->config.ovl_volatile) {
c86243b090bc25 Vivek Goyal 2020-08-31 1246 err = ovl_create_volatile_dirty(ofs);
c86243b090bc25 Vivek Goyal 2020-08-31 1247 if (err < 0) {
c86243b090bc25 Vivek Goyal 2020-08-31 1248 pr_err("Failed to create volatile/dirty file.\n");
c86243b090bc25 Vivek Goyal 2020-08-31 1249 goto out;
c86243b090bc25 Vivek Goyal 2020-08-31 1250 }
c86243b090bc25 Vivek Goyal 2020-08-31 1251 }
c86243b090bc25 Vivek Goyal 2020-08-31 1252
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1253 /* Check if upper/work fs supports file handles */
e487d889b7e3e8 Amir Goldstein 2017-11-07 1254 fh_type = ovl_can_decode_fh(ofs->workdir->d_sb);
e487d889b7e3e8 Amir Goldstein 2017-11-07 1255 if (ofs->config.index && !fh_type) {
ad204488d3046b Miklos Szeredi 2017-11-10 1256 ofs->config.index = false;
1bd0a3aea4357e lijiazi 2019-12-16 1257 pr_warn("upper fs does not support file handles, falling back to index=off.\n");
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1258 }
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1259
e487d889b7e3e8 Amir Goldstein 2017-11-07 1260 /* Check if upper fs has 32bit inode numbers */
e487d889b7e3e8 Amir Goldstein 2017-11-07 1261 if (fh_type != FILEID_INO32_GEN)
0f831ec85eda1a Amir Goldstein 2019-11-16 1262 ofs->xino_mode = -1;
e487d889b7e3e8 Amir Goldstein 2017-11-07 1263
f168f1098dd903 Amir Goldstein 2018-01-19 1264 /* NFS export of r/w mount depends on index */
f168f1098dd903 Amir Goldstein 2018-01-19 1265 if (ofs->config.nfs_export && !ofs->config.index) {
1bd0a3aea4357e lijiazi 2019-12-16 1266 pr_warn("NFS export requires \"index=on\", falling back to nfs_export=off.\n");
f168f1098dd903 Amir Goldstein 2018-01-19 1267 ofs->config.nfs_export = false;
f168f1098dd903 Amir Goldstein 2018-01-19 1268 }
2ba9d57e650448 Amir Goldstein 2018-01-03 1269 out:
2ba9d57e650448 Amir Goldstein 2018-01-03 1270 mnt_drop_write(mnt);
2ba9d57e650448 Amir Goldstein 2018-01-03 1271 return err;
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1272 }
8ed61dc37ee0a3 Miklos Szeredi 2017-11-09 1273
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2023-07-19 13:48 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-19 8:54 [PATCH V2] ovl: fix mount fail because the upper doesn't have space Yunlong Xing
2023-07-19 9:08 ` Amir Goldstein
2023-07-19 11:26 ` kernel test robot
2023-07-19 12:17 ` kernel test robot
2023-07-19 12:28 ` kernel test robot
2023-07-19 13:40 ` kernel test robot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202307192158.lNbgYfit-lkp@intel.com \
--to=lkp@intel.com \
--cc=amir73il@gmail.com \
--cc=hongyu.jin@unisoc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-unionfs@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=yunlong.xing@unisoc.com \
--cc=yunlongxing23@gmail.com \
--cc=zhiguo.niu@unisoc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.