From: kernel test robot <lkp@intel.com>
To: Yunlong Xing <yunlong.xing@unisoc.com>,
miklos@szeredi.hu, amir73il@gmail.com
Cc: llvm@lists.linux.dev, 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 20:17:42 +0800 [thread overview]
Message-ID: <202307192047.274jiOge-lkp@intel.com> (raw)
In-Reply-To: <20230719085434.154834-1-yunlong.xing@unisoc.com>
Hi Yunlong,
kernel test robot noticed the following build errors:
[auto build test ERROR on mszeredi-vfs/overlayfs-next]
[also build test ERROR 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: arm64-randconfig-r026-20230718 (https://download.01.org/0day-ci/archive/20230719/202307192047.274jiOge-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230719/202307192047.274jiOge-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/202307192047.274jiOge-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
fs/overlayfs/super.c:1192:11: warning: missing terminating '"' character [-Winvalid-pp-token]
1192 | pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
| ^
fs/overlayfs/super.c:1193:7: warning: missing terminating '"' character [-Winvalid-pp-token]
1193 | err");
| ^
>> fs/overlayfs/super.c:1192:3: error: unterminated function-like macro invocation
1192 | pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
| ^
include/linux/printk.h:507:9: note: macro 'pr_warn' defined here
507 | #define pr_warn(fmt, ...) \
| ^
>> fs/overlayfs/super.c:2065:23: error: expected expression
2065 | module_exit(ovl_exit);
| ^
>> fs/overlayfs/super.c:2065:23: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation]
fs/overlayfs/super.c:1191:2: note: previous statement is here
1191 | if (!rename_whiteout)
| ^
>> fs/overlayfs/super.c:2065:23: error: expected '}'
2065 | module_exit(ovl_exit);
| ^
fs/overlayfs/super.c:1138:1: note: to match this '{'
1138 | {
| ^
>> fs/overlayfs/super.c:1154:8: error: use of undeclared label 'out'
1154 | goto out;
| ^
3 warnings and 4 errors generated.
vim +1192 fs/overlayfs/super.c
1135
1136 static int ovl_make_workdir(struct super_block *sb, struct ovl_fs *ofs,
1137 const struct path *workpath)
1138 {
1139 struct vfsmount *mnt = ovl_upper_mnt(ofs);
1140 struct dentry *workdir;
1141 struct file *tmpfile;
1142 bool rename_whiteout;
1143 bool d_type;
1144 int fh_type;
1145 int err;
1146
1147 err = mnt_want_write(mnt);
1148 if (err)
1149 return err;
1150
1151 workdir = ovl_workdir_create(ofs, OVL_WORKDIR_NAME, false);
1152 err = PTR_ERR(workdir);
1153 if (IS_ERR_OR_NULL(workdir))
> 1154 goto out;
1155
1156 ofs->workdir = workdir;
1157
1158 err = ovl_setup_trap(sb, ofs->workdir, &ofs->workdir_trap, "workdir");
1159 if (err)
1160 goto out;
1161
1162 /*
1163 * Upper should support d_type, else whiteouts are visible. Given
1164 * workdir and upper are on same fs, we can do iterate_dir() on
1165 * workdir. This check requires successful creation of workdir in
1166 * previous step.
1167 */
1168 err = ovl_check_d_type_supported(workpath);
1169 if (err < 0)
1170 goto out;
1171
1172 d_type = err;
1173 if (!d_type)
1174 pr_warn("upper fs needs to support d_type.\n");
1175
1176 /* Check if upper/work fs supports O_TMPFILE */
1177 tmpfile = ovl_do_tmpfile(ofs, ofs->workdir, S_IFREG | 0);
1178 ofs->tmpfile = !IS_ERR(tmpfile);
1179 if (ofs->tmpfile)
1180 fput(tmpfile);
1181 else
1182 pr_warn("upper fs does not support tmpfile.\n");
1183
1184
1185 /* Check if upper/work fs supports RENAME_WHITEOUT */
1186 err = ovl_check_rename_whiteout(ofs);
1187 if (err < 0 && err != -ENOSPC)
1188 goto out;
1189
1190 rename_whiteout = err > 0;
> 1191 if (!rename_whiteout)
> 1192 pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
> 1193 err");
1194
1195 /*
1196 * Check if upper/work fs supports (trusted|user).overlay.* xattr
1197 */
1198 err = ovl_setxattr(ofs, ofs->workdir, OVL_XATTR_OPAQUE, "0", 1);
1199 if (err) {
1200 pr_warn("failed to set xattr on upper\n");
1201 ofs->noxattr = true;
1202 if (ovl_redirect_follow(ofs)) {
1203 ofs->config.redirect_mode = OVL_REDIRECT_NOFOLLOW;
1204 pr_warn("...falling back to redirect_dir=nofollow.\n");
1205 }
1206 if (ofs->config.metacopy) {
1207 ofs->config.metacopy = false;
1208 pr_warn("...falling back to metacopy=off.\n");
1209 }
1210 if (ofs->config.index) {
1211 ofs->config.index = false;
1212 pr_warn("...falling back to index=off.\n");
1213 }
1214 /*
1215 * xattr support is required for persistent st_ino.
1216 * Without persistent st_ino, xino=auto falls back to xino=off.
1217 */
1218 if (ofs->config.xino == OVL_XINO_AUTO) {
1219 ofs->config.xino = OVL_XINO_OFF;
1220 pr_warn("...falling back to xino=off.\n");
1221 }
1222 if (err == -EPERM && !ofs->config.userxattr)
1223 pr_info("try mounting with 'userxattr' option\n");
1224 err = 0;
1225 } else {
1226 ovl_removexattr(ofs, ofs->workdir, OVL_XATTR_OPAQUE);
1227 }
1228
1229 /*
1230 * We allowed sub-optimal upper fs configuration and don't want to break
1231 * users over kernel upgrade, but we never allowed remote upper fs, so
1232 * we can enforce strict requirements for remote upper fs.
1233 */
1234 if (ovl_dentry_remote(ofs->workdir) &&
1235 (!d_type || !rename_whiteout || ofs->noxattr)) {
1236 pr_err("upper fs missing required features.\n");
1237 err = -EINVAL;
1238 goto out;
1239 }
1240
1241 /*
1242 * For volatile mount, create a incompat/volatile/dirty file to keep
1243 * track of it.
1244 */
1245 if (ofs->config.ovl_volatile) {
1246 err = ovl_create_volatile_dirty(ofs);
1247 if (err < 0) {
1248 pr_err("Failed to create volatile/dirty file.\n");
1249 goto out;
1250 }
1251 }
1252
1253 /* Check if upper/work fs supports file handles */
1254 fh_type = ovl_can_decode_fh(ofs->workdir->d_sb);
1255 if (ofs->config.index && !fh_type) {
1256 ofs->config.index = false;
1257 pr_warn("upper fs does not support file handles, falling back to index=off.\n");
1258 }
1259
1260 /* Check if upper fs has 32bit inode numbers */
1261 if (fh_type != FILEID_INO32_GEN)
1262 ofs->xino_mode = -1;
1263
1264 /* NFS export of r/w mount depends on index */
1265 if (ofs->config.nfs_export && !ofs->config.index) {
1266 pr_warn("NFS export requires \"index=on\", falling back to nfs_export=off.\n");
1267 ofs->config.nfs_export = false;
1268 }
1269 out:
1270 mnt_drop_write(mnt);
1271 return err;
1272 }
1273
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2023-07-19 12:18 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 [this message]
2023-07-19 12:28 ` kernel test robot
2023-07-19 13:40 ` kernel test robot
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=202307192047.274jiOge-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=llvm@lists.linux.dev \
--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.