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
> >>>
> >>>
> >
> >


--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to