Hi Jeff,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on miklos-vfs/overlayfs-next]
[also build test WARNING on linus/master v5.10-rc7 next-20201211]
[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]
url:
https://github.com/0day-ci/linux/commits/Jeff-Layton/errseq-overlayfs-acc...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git overlayfs-next
config: x86_64-randconfig-a016-20201213 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
d38205144febf4dc42c9270c6aa3d978f1ef65e1)
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
#
https://github.com/0day-ci/linux/commit/89bd90a6b2a9bc40a46e9b9de68356e99...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Jeff-Layton/errseq-overlayfs-accomodate-the-volatile-upper-layer-use-case/20201213-213109
git checkout 89bd90a6b2a9bc40a46e9b9de68356e99cde04e8
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> fs/overlayfs/super.c:272:23: warning: variable 'upper_sb'
is uninitialized when used here [-Wuninitialized]
ret =
errseq_check(&upper_sb->s_wb_err, ofs->err_mark);
^~~~~~~~
fs/overlayfs/super.c:264:30: note: initialize the variable 'upper_sb' to
silence this warning
struct super_block *upper_sb;
^
= NULL
1 warning generated.
vim +/upper_sb +272 fs/overlayfs/super.c
259
260 /* Sync real dirty inodes in upper filesystem (if it exists) */
261 static int ovl_sync_fs(struct super_block *sb, int wait)
262 {
263 struct ovl_fs *ofs = sb->s_fs_info;
264 struct super_block *upper_sb;
265 int ret;
266
267 if (!ovl_upper_mnt(ofs))
268 return 0;
269
270 if (!ovl_should_sync(ofs)) {
271 /* Propagate errors from upper to overlayfs */
272 ret = errseq_check(&upper_sb->s_wb_err,
ofs->err_mark);
273 errseq_set(&sb->s_wb_err, ret);
274 return ret;
275 }
276
277 /*
278 * Not called for sync(2) call or an emergency sync (SB_I_SKIP_SYNC).
279 * All the super blocks will be iterated, including upper_sb.
280 *
281 * If this is a syncfs(2) call, then we do need to call
282 * sync_filesystem() on upper_sb, but enough if we do it when being
283 * called with wait == 1.
284 */
285 if (!wait)
286 return 0;
287
288 upper_sb = ovl_upper_mnt(ofs)->mnt_sb;
289
290 down_read(&upper_sb->s_umount);
291 ret = sync_filesystem(upper_sb);
292 up_read(&upper_sb->s_umount);
293
294 return ret;
295 }
296
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org