Re: [RFC][PATCH v2 0/5] Experiments with overlayfs filemap

Amir Goldstein
2019-01-29T16:47:20Z

> > ./run --ov=0 --samefs rename-new-pop-dir
>
> Fix attached.

So, is sync_filesystem(sb); in ovl_remount() needed or not?

Note that ./run --ov=0 rename-mass-4
does pass but hits a WARN_ON:
[ 735.666817] WARNING: CPU: 1 PID: 7 at
/home/amir/build/src/linux/fs/overlayfs/file.c:913
ovl_writepage+0x71/0x113

The WARN_ON is also hit by xfstest overlay/030.

In both cases its an extending write where pos == size

It seems to me that simple_write_end() is indeed too simple
and compared to __generic_write_end() it is missing at least
pagecache_isize_extended() which seems related to the WARN_ON.
I tried several fixes, but gave up.

I found one fix for overlay/001 failure:

@@ -65,7 +65,8 @@ static struct file *ovl_open_upper(const struct file *file,
ovl_path_upper(file_dentry(file), &realpath);

old_cred = ovl_override_creds(inode->i_sb);
- realfile = open_with_fake_path(&realpath, O_RDWR | O_NOATIME,
+ realfile = open_with_fake_path(&realpath,
+ O_RDWR | O_LARGEFILE | O_NOATIME,
realinode, current_cred());

Other xfstests failures:
overlay/032 overlay/047 overlay/050 overlay/051

Thanks,
Amir.