Commit Graph

12 Commits

Author SHA1 Message Date
Chen Qi c4a539c8c8 populate-extfs.sh: fix to handle special file names correctly
`debugfs' treats spaces and "" specially. So when we are dealing with
file names, great care should be taken to make sure that `debugfs'
recognizes file names correctly.

The basic solution here is:
1. Use quotation marks to handle spaces correctly.
2. Replace "xxx" with ""xxx"" so that debugfs knows that the quotation
   marks are parts of the file name.

[YOCTO #6503]

(From OE-Core rev: 24f17607e996c499c8f86eda0588d02af1e960b9)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-08 16:09:58 +01:00
Stéphane Cerveau 4a18e162d8 e2fsprogs: Fix populate-extfs.sh
Fix the use of command dirname on ubuntu 12.04.
dirname does not accept space in file name.

(From OE-Core rev: ab6bd289d51c3c44862b43241a99d3e4f3ff13c0)

Signed-off-by: Stéphane Cerveau <scerveau@connected-labs.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-03 13:47:22 +01:00
Chen Qi 05f172c745 populate-extfs.sh: keep file timestamps
Fix populate-extfs.sh to keep file timestamps while generating the
ext file systems.

[YOCTO #6348]

(From OE-Core rev: f8c0359edc2ce740e13e874ea189770ff99d1525)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-24 11:05:31 +01:00
Chen Qi 3ceb90eacd populate-extfs.sh: error out if debugfs encounters some error
Previously, even if we encounter some error when populating the
ext filesystem, we don't error out and the rootfs process still
succeeds.

However, what's really expected is that the populate-extfs.sh script
should error out if something wrong happens when using `debugfs' to
generate the ext filesystem. For example, if there's not enough block
in the filesystem, and allocating a block for some file fails, the
failure should not be ignored. Otherwise, we will have a successful
build but a corrupted filesystem.

The debugfs returns 0 as long as the command is valid. That is, even
if the command fails, the debugfs still returns 0. That's really a
pain here. That's why this patch checks the error output to see whether
there's any error logged.

(From OE-Core rev: 468d3e60ee10348578f78f846e87c02359fdb8bf)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-24 11:04:18 +01:00
Chen Qi 8c346a66b5 populate-extfs.sh: fix to handle /var/lib/opkg/alternatives/[[ correctly
There was a patch trying to fix this problem by using 'dirname', but it
caused some build failures, thus got reverted.

The problem is that $DIR might be empty and we should first do the check
before trying to use $(dirname $DIR).

[YOCTO #5712]

(From OE-Core rev: 8277c71747758e2ba0815a6f5cd11c9e0c9c90ce)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-24 11:04:18 +01:00
Søren Holm 9be52e5f42 e2fsprogs: Escape filenames in populate-extfs.sh
Without this patch filenames containing spaces do not get into the final
ext2/3/4 filsystem.

[YOCTO #5401]

(From OE-Core master rev: 1350b461ed0c9d4afa1ab909a5b1ff60fb160c97)

(From OE-Core rev: 62d01b10508f86ca825ebc24773dfa2b485b4292)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-12 17:00:08 +00:00
Robert Yang 39d80f6d4f e2fsprogs: add populate-extfs.sh
This script is originally from Darren Hart, it will be used for creating
the ext* filesystem from a given directory, which will replace the
genext2fs in image_types.bbclass at the moment, we may use the mke2fs to
replace this script again when it has the initial directory support.

Changes of the script:
* Rename it from mkdebugfs.sh to populate-extfs.sh
* Add a simple usage
* Add checking for the number of the parameters
* Add the "regular empty file" and "fifo" file type
* Set mode, uid and gid for the file
* Save the command lines to a file and batch run them
* Change the error message
* Improve the performance
* Add the support for hardlink

[YOCTO #3848]

(From OE-Core rev: 265f91149aa8c475ebe5b7069044ed94b7857fa9)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-26 11:47:19 +01:00
Robert Yang 1b214059be e2fsprogs: properly set up extent header in do_write
do_write doesn't fully set up the first extent header on a new
inode, so if we write a 0-length file, and don't write any data
to the new file, we end up creating something that looks corrupt
to kernelspace:

EXT4-fs error (device loop0): ext4_ext_check_inode:464: inode #12: comm
ls: bad header/extent: invalid magic - magic 0, entries 0, max 0(0),
depth 0(0)

Do something similar to ext4_ext_tree_init() here, and
fill out the first extent header upon creation to avoid this.

[YOCTO #3848]

(From OE-Core rev: 7d1e51681d25f6e6d2c20744825723ad5c83861c)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-26 11:47:19 +01:00
Robert Yang 2cece576b3 e2fsprogs: only update the icache for ext2_inode
We only read the cache when:

bufsize == sizeof(struct ext2_inode)

then we should only update the cache in the same condition, otherwise
there would be errors, for example:

cache[0]: cached ino 14 when bufsize = 128 by ext2fs_write_inode_full()
cache[1]: cached ino 14 when bufsize = 156 by ext2fs_read_inode_full()

Then update the cache:
cache[0]: cached ino 15 when bufsize = 156 by ext2fs_read_inode_full()

Then the ino 14 would hit the cache[1] when bufsize = 128 (but it was
cached by bufsize = 156), so there would be errors.

[YOCTO #3848]

(From OE-Core rev: ad8452196c5b1a54c14fd00bbf421f68aea65186)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-26 11:47:19 +01:00
Robert Yang a758b93021 e2fsprogs: let debugfs do sparse copy
Let debugfs do sparse copy when src is a sparse file, just like
"cp --sparse=auto"

This patch has been reviewed by the linux-ext4 mailing list, but isn't
merged atm.

[YOCTO #3848]

(From OE-Core rev: 723adaf8fbba61b7f1adc8e4a13ddf1cfb5c0bcf)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-26 11:47:18 +01:00
Robert Yang f1e6091a1b e2fsprogs: the max length of debugfs argument is too short
The max length of debugfs argument is 256 which is too short, the
arguments are two paths, the PATH_MAX is 4096 according to
/usr/include/linux/limits.h, so use BUFSIZ (which is 8192 on Linux
systems), that's also what the ss library uses.

This patch has been reviewed by the linux-ext4 mailing list, but isn't
merged atm.

[YOCTO #3848]

(From OE-Core rev: a916a127768291ca7c614976e05c90153fec2956)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-26 11:47:18 +01:00
Andrei Dinu 28d8cbe2cd e2fsprogs: upgrade to 1.42.8
upgrade from 1.42.7 -> 1.42.8

(From OE-Core rev: 76a373c64f1b1da02fccbc51f9aaff6082effef9)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-07-10 09:41:51 +01:00