All of lore.kernel.org
 help / color / mirror / Atom feed
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

      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.