From: Ralph Sennhauser <ralph.sennhauser@gmail.com>
To: Amir Goldstein <amir73il@gmail.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>,
linux-unionfs@vger.kernel.org,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-mtd@lists.infradead.org, regressions@leemhuis.info,
Ralph Sennhauser <ralph.sennhauser@gmail.com>
Subject: Re: [REGRESSION 4.11] Commit d8514d8edb5b ("ovl: copy up regular file using O_TMPFILE") breaks ubifs
Date: Tue, 28 Mar 2017 12:45:45 +0200 [thread overview]
Message-ID: <20170328124545.3c4b87ff@gmail.com> (raw)
In-Reply-To: <CAOQ4uxisw5vWYsdMTNemw=MqNyS2nxfAUkg+UfoGmbE3-he1Ug@mail.gmail.com>
On Tue, 28 Mar 2017 05:27:03 -0400
Amir Goldstein <amir73il@gmail.com> wrote:
> On Tue, Mar 28, 2017 at 4:01 AM, Ralph Sennhauser
> <ralph.sennhauser@gmail.com> wrote:
> > Hi Amir
> >
> > Commit d8514d8edb5b ("ovl: copy up regular file using O_TMPFILE")
> > breaks squashfs with an ubifs overlay (both ubi volumes of the same
> > container).
> >
>
> Hi Ralph,
>
> I am confused by the description above. Which are the 'both ubi
> volumes'?
The ubi container has two volumes, the first is a squashfs, the second
volume an ubifs. The latter is mounted as an overlay.
>
> Can you provide exact command of overlayfs mount, preferably
> also a script to generate the lower/upper images and mount them
> to remove any mkfs option doubts from test setup.
Both I mount from the initramfs as follows (rom / overlay are empty in
the initramfs):
mount -o rw,nosuid,nodev,noexec,noatime -t proc proc /proc || rescue_shell "proc"
mount -o rw,nosuid,nodev,noexec,noatime -t sysfs sysfs /sys || rescue_shell "sys"
mount -o rw,nosuid -t devtmpfs devtmpfs /dev || rescue_shell "dev"
ubiattach -m $(get_mtd_from_root_arg) /dev/ubi_ctrl || rescue_shell "attach"
ubiblock --create /dev/ubi0_0 || rescue_shell || "block"
mount -o ro -t squashfs /dev/ubiblock0_0 /rom || rescue_shell "mount rootfs"
mount -o rw,noatime -t ubifs /dev/ubi0_1 /overlay || rescue_shell "mount rootfs_data"
mkdir -p /overlay/upper || rescue_shell "mkdir upper"
mkdir -p /overlay/work || rescue_shell "mkdir work"
mount -o rw,noatime,lowerdir=/rom,upperdir=/overlay/upper,workdir=/overlay/work \
-t overlay overlay /newroot || rescue_shell "mount overlay"
mount --move /rom /newroot/rom || rescue_shell "move rootfs"
mount --move /overlay /newroot/overlay || rescue_shell "move rootfs_data"
mount --move /dev /newroot/dev || rescue_shell "move dev"
mount --move /sys /newroot/sys || rescue_shell "move sys"
mount --move /proc /newroot/proc || rescue_shell "move proc"
exec switch_root /newroot /sbin/init
I use OpenWrt as a basis, replacing the kernel with a vanilla one.
The options used to generate the file systems are:
Squashfs: -p 128KiB -m 2048 -s 512 -O 2048
Ubifs: -m 2048 -e 124KiB -c 4096 -F
>
> > Renaming a file results in an error "UBIFS error (ubi0:1 pid 1394):
> > ubifs_add_orphan: orphaned twice". This corrupts the the filesystem
> > and the next attempt to mount the overlay will fail.
> >
>
> Does that happen on any attempt to rename a file?
> A file that was only is lower I suppose?
That's how I trigger it, yes. Can reproduce it on any attempt.
> Can you provide a simple script with your test, setting up the
> lower/upper files and triggering the bug.
Any more you need than the above mount script? A call to "mv somefile
somefile.back && reboot" on a fresh install is all I do.
Thanks
Ralph
PS: Reverting 01ad3eb8a073 ("ovl: concurrent copy up of regular files")
as a dependency and the commit mentioned in Subject fix the issue for
me. Tested on v4.11-rc4 and next-20170327.
next prev parent reply other threads:[~2017-03-28 10:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-28 8:01 [REGRESSION 4.11] Commit d8514d8edb5b ("ovl: copy up regular file using O_TMPFILE") breaks ubifs Ralph Sennhauser
2017-03-28 9:27 ` Amir Goldstein
2017-03-28 10:43 ` Amir Goldstein
2017-03-29 21:06 ` Richard Weinberger
2017-03-29 21:06 ` Richard Weinberger
2017-03-28 10:45 ` Ralph Sennhauser [this message]
2017-03-28 11:03 ` Amir Goldstein
2017-03-28 11:03 ` Amir Goldstein
2017-03-28 11:28 ` Ralph Sennhauser
2017-03-28 12:08 ` Amir Goldstein
2017-03-28 12:16 ` Ralph Sennhauser
2017-03-29 19:16 ` Amir Goldstein
2017-03-29 21:26 ` Ralph Sennhauser
2017-03-29 22:15 ` Richard Weinberger
2017-03-30 5:53 ` Ralph Sennhauser
2017-03-30 6:34 ` Amir Goldstein
2017-03-30 7:18 ` Richard Weinberger
-- strict thread matches above, loose matches on Subject: below --
2017-03-30 6:56 AW: " Richard Weinberger
2017-03-30 7:28 ` Ralph Sennhauser
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=20170328124545.3c4b87ff@gmail.com \
--to=ralph.sennhauser@gmail.com \
--cc=amir73il@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-unionfs@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=regressions@leemhuis.info \
/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.