Re: [REGRESSION 4.11] Commit d8514d8edb5b ("ovl: copy up regular file using O_TMPFILE") breaks ubifs

From: Amir Goldstein
Date: Wed Mar 29 2017 - 15:16:16 EST


On Tue, Mar 28, 2017 at 3:16 PM, Ralph Sennhauser
<ralph.sennhauser@xxxxxxxxx> wrote:
> On Tue, 28 Mar 2017 08:08:51 -0400
> Amir Goldstein <amir73il@xxxxxxxxx> wrote:
>
>> On Tue, Mar 28, 2017 at 7:28 AM, Ralph Sennhauser
>> <ralph.sennhauser@xxxxxxxxx> wrote:
>> > Hi Amir,
>> >
>> > On Tue, 28 Mar 2017 07:03:11 -0400
>> > Amir Goldstein <amir73il@xxxxxxxxx> wrote:
>> >
>> >> Overlayfs now uses O_TMPFILE for copy up and it works fine with all
>> >> the file systems I tested (tmpfs, xfs, ext4).
>> >> If I am right and O_TMPFILE is broken in ubifs, you are most likely
>> >> the first person to test it (indirectly by overlayfs).
>> >>
>> >> Please try to reproduce the bug with following patch to disable
>> >> ubifs O_TMPFILE support:
>> >>
>> >> --- a/fs/ubifs/dir.c
>> >> +++ b/fs/ubifs/dir.c
>> >> @@ -1685,7 +1685,7 @@ const struct inode_operations
>> >> ubifs_dir_inode_operations = {
>> >> #ifdef CONFIG_UBIFS_ATIME_SUPPORT
>> >> .update_time = ubifs_update_time,
>> >> #endif
>> >> - .tmpfile = ubifs_tmpfile,
>> >> + //.tmpfile = ubifs_tmpfile,
>> >> };
>> >
>> > Get a unused warning during build but all seems to be working fine
>> > now.
>>
>> OK. I'll wait for ubifs developers to fix the bug.
>> Otherwise, I'll send a proper patch to disable ubifs O_TMPFILE
>> support. Will add tested-by you.
>
> Sounds like a good plan, there is still time for 4.11-rc5. Fine with
> you adding my tested-by in case it will come to this.
>


Ralph,

Can you please try to reproduce the problem with this command
on ubifs:

# create and link a tmpfile - then remove it
sudo rm -rf foo; sudo xfs_io -T -c "flink foo" . ; ls -l foo; sudo rm foo

That's the gist of xfstest generic/004.

You should expect the same behavior of corrupted fs after boot.

This issue should be reproduced since kernel 4.9 when ubifs tmpfile
support was added.

I hope this info can help the ubifs developers fix the problem
independently from overlayfs setup.

Thanks,
Amir.