All of lore.kernel.org
 help / color / mirror / Atom feed
From: Artem Bityutskiy <dedekind1@gmail.com>
To: Marcus Prebble <marcus.prebble@axis.com>
Cc: Ricard Wanderlof <ricardw@axis.com>, linux-mtd@lists.infradead.org
Subject: Re: mkfs.ubifs problem when output file really isn't in the UBIFS root directory
Date: Thu, 04 Oct 2012 19:16:56 +0300	[thread overview]
Message-ID: <1349367416.20373.75.camel@sauron.fi.intel.com> (raw)
In-Reply-To: <1348242118.2552.1460.camel@lnxprebble2.se.axis.com>

[-- Attachment #1: Type: text/plain, Size: 2124 bytes --]

On Fri, 2012-09-21 at 17:41 +0200, Marcus Prebble wrote:
> Hi,
> 
> We are working on a project using UBI/UBIFS and I have run into a
> problem with mkfs.ubifs which I am hoping someone can advise on.
> Apologies if I have already missed the answer to this in the archives
> somewhere.
> 
> A requirement of the project is to take an image of the root filesystem
> (/) which is implemented as a static UBI read only volume. Obviously its
> not possible to unmount /, but it seems to be possible to re-mount the
> UBI volume, read only, onto another location e.g. /tmp/mnt/new_rootfs.
> 
> The problem arises when running mkfs.ubifs is that it fails saying that
> the output file cannot be in the UBIFS root directory.
> This sounds like a reasonable constraint if the output file really was
> in the root, but this is not the case for us seeing root is mounted
> somewhere belowtmp. To give a concrete example of the command we are
> running:
> 
> mkfs.ubifs --output=/tmp/rootfs.img  --leb-size=129024
> --root=/tmp/rootfs_mnt --min-io-size=2048 --max-leb-cnt=147 
> 
> Where /dev/ubi0_11 is mounted read-only on both / and /tmp/rootfs_mnt/.
> 
> Having a look at the source for mkfs.ubifs it seems that the function
> in_path(..) is the problem - it works up the directory tree using ../
> until it either reaches the top_dir (/) or the inode number/dev match in
> which case it fails. It doesn't seem that this section of code has
> changed in the latest version of mtd-utils (we are running 1.4.3-2) and
> I wonder if this is a bug in in_path(..) or a genuine safeguard against
> screwing something up? I suspect the former for when I disabled this
> check in mkfs.ubifs.c the resulting image was completely OK.

Well, obviously this is a safeguard check. If your source FS is
in /a/path/, and the output image file is /a/path/image, then we will
loop forever reading /a/path/image and writing the output
to /a/path/image.

In your case 'tmp' is a tmpfs, right? This is obviously a bug then. You
should probably analyze it and send a fix.

-- 
Best Regards,
Artem Bityutskiy

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2012-10-04 16:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-21 15:41 mkfs.ubifs problem when output file really isn't in the UBIFS root directory Marcus Prebble
2012-10-04 16:16 ` Artem Bityutskiy [this message]
2012-10-08 15:04   ` Marcus Prebble
2012-10-10  6:47     ` Artem Bityutskiy
2012-10-10  9:04       ` Marcus Prebble
2012-10-10  9:30         ` Artem Bityutskiy
2012-10-10 10:34           ` Marcus Prebble
2012-10-10 11:30             ` Artem Bityutskiy
2012-10-10 15:26               ` Marcus Prebble
2012-10-11  7:54                 ` Artem Bityutskiy
2012-10-11  7:56                 ` Artem Bityutskiy

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=1349367416.20373.75.camel@sauron.fi.intel.com \
    --to=dedekind1@gmail.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marcus.prebble@axis.com \
    --cc=ricardw@axis.com \
    /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.