public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
To: Saul Wold <sgw@linux.intel.com>
Cc: "linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: Building a brtfs filesystem < 70M?
Date: Tue, 11 Mar 2014 15:51:30 +0800	[thread overview]
Message-ID: <1394524290.15173.12.camel@localhost.localdomain> (raw)
In-Reply-To: <531EB000.3060907@linux.intel.com>

On Mon, 2014-03-10 at 23:41 -0700, Saul Wold wrote:
> On 03/10/2014 10:47 PM, Gui Hecheng wrote:
> > On Mon, 2014-03-10 at 20:16 -0700, Saul Wold wrote:
> >> On 03/10/2014 07:38 PM, Gui Hecheng wrote:
> >>> On Mon, 2014-03-10 at 16:25 -0700, Saul Wold wrote:
> >>>> Hi There
> >>>>
> >>>> There seems to be an issue if we try to build a btrfs based FS that is
> >>>> less than 70M, we get the following assertion failure:
> >>>>
> >>>> mkfs.btrfs: extent-tree.c:2682: btrfs_reserve_extent: Assertion `!(ret)'
> >>>> failed.
> >>>>
> >>>> I tried to do a search on this and did not find anything obvious.
> >>>>
> >>>> Further, if I do build a 70M image, it will not mount until I get to I
> >>>> increase  the about 100M!
> >>>>
> >>>> # mount -o loop -v rootfs.btrfs mnt
> >>>> mount: wrong fs type, bad option, bad superblock on /dev/loop0,
> >>>>           missing codepage or helper program, or other error
> >>>>
> >>>>           In some cases useful info is found in syslog - try
> >>>>           dmesg | tail or so.
> >>>>
> >>>> I can provide a small rootfs (~4M) example if needed
> >>>>
> >>>> Builds and mounts correct:
> >>>> mkfs.btrfs -b 104857600 -r rootfs rootfs.btrfs
> >>>>
> >>>> Builds, but does not mount:
> >>>> mkfs.btrfs -b 73400320 -r rootfs rootfs.btrfs
> >>>>
> >>>> Does not build, gives the above assertion error:
> >>>> mkfs.btrfs -b 10889216 -r rootfs rootfs.btrfs
> >>>>
> >>>>
> >>>> Thanks
> >>>>
> >>> Hi Saul,
> >>> Sorry, I'm not able to reproduce your problem...
> >>> Are you running the latest btrfs-progs from david's branch?
> >>>
> >> Yes, I am building it from git using master I think, git hash:
> >> 8cae1840afb3ea44dcc298f32983e577480dfee4
> >>
> >> I tried both with and without the -M as cwillu suggested, still no joy,
> >> I can send some the rootfs I am using to see if is's something specific.
> >>
> >> Here's the full failure:
> >>
> >> $ tmp/sysroots/x86_64-linux/usr/bin/mkfs.btrfs -M -b 10889216 -r
> >> tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/rootfs rootfs.btrfs
> >> SMALL VOLUME: forcing mixed metadata/data groups
> >> SMALL VOLUME: forcing mixed metadata/data groups
> >>
> >> WARNING! - Btrfs v3.12-dirty IS EXPERIMENTAL
> >> WARNING! - see http://btrfs.wiki.kernel.org before using
> >>
> >> Turning ON incompat feature 'mixed-bg': mixed data and metadata block groups
> >> Turning ON incompat feature 'extref': increased hardlink limit per file
> >> to 65536
> >> Created a data/metadata chunk of size 8388608
> >> fs created label (null) on rootfs.btrfs
> >> 	nodesize 4096 leafsize 4096 sectorsize 4096 size 180.00MiB
> >> Btrfs v3.12-dirty
> >> scandir for
> >> tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/rootfs failed:
> >> No such file or directory
> >> unable to traverse_directory
> >> Making image is aborted.
> >> mkfs.btrfs: mkfs.c:1592: main: Assertion `!(ret)' failed.
> >> Aborted (core dumped)
> >>
> >>
> >> Thanks for the help!
> >>
> >> Sau!
> >>
> > I think the output really tells us the problem: the mkfs '-r' option
> > requires a 'directory' as an arg.
> > But still it should not abort with 'core dumped', I would be glad to
> > make it more friendly.
> >
> Yes, the 
> "tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/rootfs" is a 
> directory containing a rootfs, we use this with genext2fs with no 
> issues.  As I said, I can provide you with a tarball of this directory 
> if you wish to try and reproduce this issue.
> 
> Sau!
> 
Acturally, I notised that u'v present 2 different BUG_ON()
	1. extent-tree.c:2682:btrfs_reserve_extent
	2. mkfs.c:1592:main

The 'full failure' u showed is for the 2nd, not the 1st. 

o For the 1st, it is really a space related thing.
o For the 2nd, the 'errno' of the scandir() won't lie,
please check whether arg for '-r' is 'valid'.

For the ~4M rootfs... I will be glad for your kind offer~
Please send it to me.

-Gui

> > -Gui
> >>
> >>> Thanks,
> >>> Gui
> >>>
> >>>
> >
> >



  reply	other threads:[~2014-03-11  7:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-10 23:25 Building a brtfs filesystem < 70M? Saul Wold
2014-03-11  0:16 ` cwillu
2014-03-11  2:38 ` Gui Hecheng
2014-03-11  3:16   ` Saul Wold
2014-03-11  5:47     ` Gui Hecheng
2014-03-11  6:41       ` Saul Wold
2014-03-11  7:51         ` Gui Hecheng [this message]
2014-03-11 16:37 ` Zach Brown
2014-03-12  1:10   ` quwenruo
2014-03-12  1:43     ` Saul Wold

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=1394524290.15173.12.camel@localhost.localdomain \
    --to=guihc.fnst@cn.fujitsu.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=sgw@linux.intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox