On Tue, Jan 29, 2019 at 10:13 AM Amir Goldstein <amir73il@xxxxxxxxx> wrote: > > On Tue, Jan 29, 2019 at 10:58 AM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > On Tue, Jan 29, 2019 at 9:54 AM Amir Goldstein <amir73il@xxxxxxxxx> wrote: > > > > > > On Tue, Jan 29, 2019 at 9:17 AM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > > > > > On Mon, Jan 28, 2019 at 11:14 PM Amir Goldstein <amir73il@xxxxxxxxx> wrote: > > > > > > > > > > On Mon, Jan 28, 2019 at 11:22 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > > > > > > > > > On Mon, Jan 28, 2019 at 10:17 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > > > > > > > > > > Trying to put some code together... > > > > > > > > > > > > Very rudimentary patch attached. It doens't do direct IO yet, but > > > > > > demonstrates what I meant about achoring the upper file in the inode. > > > > > > > > > > > > > > > > Code looks good, but blows up on xfstests, so I'll wait for a baked patch > > > > > before testing. > > > > > > > > > > > Also found the trick to actually make writeback work: > > > > > > super_setup_bdi() call in fill_super... > > > > > > > > > > > > > > > > Cool, but when adding only setup_bdi() this to my code, I still don't see any > > > > > writeback. No writeback observed with your patch as well. > > > > > > > > I did observe writeback, but haven't done much testing. Will > > > > hopefully get this into a better shape today. > > > > > > > > > > OK, I see the writebacks. Didn't see them with test: > > > > > > # ./run --ov --samefs --recycle rename-new-pop-dir > > > > Which branch is this? Master doesn't have --recycle. > > > > Sorry, this flag is from branch ovl_snapshot, but exact same > functionality on master with syntax: > > ./run --ov=0 --samefs rename-new-pop-dir Fix attached. Need to work on other stuff, so xfstests left for tomorrow (or if you have time, feel free). Thanks, Miklos
--- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -378,7 +382,6 @@ static int ovl_remount(struct super_block *sb, int *flags, char *data) static const struct super_operations ovl_super_operations = { .alloc_inode = ovl_alloc_inode, .destroy_inode = ovl_destroy_inode, - .drop_inode = generic_delete_inode, .put_super = ovl_put_super, .sync_fs = ovl_sync_fs, .statfs = ovl_statfs,