summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/e2fsprogs
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/e2fsprogs')
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-extent-header.patch47
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-sparse-copy.patch148
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-too-short.patch41
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/e2fsprogs-fix-tests-f_extent_oobounds.patch43
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/fallocate.patch22
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/acinclude.m4 (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/acinclude.m4)0
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/fix-icache.patch)6
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/mkdir.patch (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/mkdir.patch)0
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/populate-extfs.sh (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/populate-extfs.sh)0
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/quiet-debugfs.patch)0
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/remove.ldconfig.call.patch (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/remove.ldconfig.call.patch)0
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.8.bb)10
12 files changed, 3 insertions, 314 deletions
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-extent-header.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-extent-header.patch
deleted file mode 100644
index ae44730192..0000000000
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-extent-header.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1debugfs: properly set up extent header in do_write
2
3do_write doesn't fully set up the first extent header on a new
4inode, so if we write a 0-length file, and don't write any data
5to the new file, we end up creating something that looks corrupt
6to kernelspace:
7
8EXT4-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)
9
10Do something similar to ext4_ext_tree_init() here, and
11fill out the first extent header upon creation to avoid this.
12
13Upstream-Status: Backport
14
15Reported-by: Robert Yang <liezhi.yang@windriver.com>
16Signed-off-by: Eric Sandeen <sandeen@redhat.com>
17---
18 debugfs/debugfs.c | 13 ++++++++++++-
19 1 file changed, 12 insertions(+), 1 deletion(-)
20
21diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
22--- a/debugfs/debugfs.c
23+++ b/debugfs/debugfs.c
24@@ -1726,8 +1726,19 @@ void do_write(int argc, char *argv[])
25 inode.i_links_count = 1;
26 inode.i_size = statbuf.st_size;
27 if (current_fs->super->s_feature_incompat &
28- EXT3_FEATURE_INCOMPAT_EXTENTS)
29+ EXT3_FEATURE_INCOMPAT_EXTENTS) {
30+ int i;
31+ struct ext3_extent_header *eh;
32+
33+ eh = (struct ext3_extent_header *) &inode.i_block[0];
34+ eh->eh_depth = 0;
35+ eh->eh_entries = 0;
36+ eh->eh_magic = EXT3_EXT_MAGIC;
37+ i = (sizeof(inode.i_block) - sizeof(*eh)) /
38+ sizeof(struct ext3_extent);
39+ eh->eh_max = ext2fs_cpu_to_le16(i);
40 inode.i_flags |= EXT4_EXTENTS_FL;
41+ }
42 if (debugfs_write_new_inode(newfile, &inode, argv[0])) {
43 close(fd);
44 return;
45--
461.8.1.2
47
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-sparse-copy.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-sparse-copy.patch
deleted file mode 100644
index 07124702a3..0000000000
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-sparse-copy.patch
+++ /dev/null
@@ -1,148 +0,0 @@
1debugfs.c: do sparse copy when src is a sparse file
2
3Let debugfs do sparse copy when src is a sparse file, just like
4"cp --sparse=auto"
5
6* For the:
7 #define IO_BUFSIZE 64*1024
8 this is a suggested value from gnu coreutils:
9 http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=src/ioblksize.h;h=1ae93255e7d0ccf0855208c7ae5888209997bf16;hb=HEAD
10
11* Use malloc() to allocate memory for the buffer since put 64K (or
12 more) on the stack seems not a good idea.
13
14Upstream-Status: Submitted
15
16Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
17Acked-by: Darren Hart <dvhart@linux.intel.com>
18---
19 debugfs/debugfs.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++----
20 1 file changed, 58 insertions(+), 4 deletions(-)
21
22diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
23--- a/debugfs/debugfs.c
24+++ b/debugfs/debugfs.c
25@@ -41,6 +41,16 @@ extern char *optarg;
26 #define BUFSIZ 8192
27 #endif
28
29+/* 64KiB is the minimium blksize to best minimize system call overhead. */
30+#ifndef IO_BUFSIZE
31+#define IO_BUFSIZE 64*1024
32+#endif
33+
34+/* Block size for `st_blocks' */
35+#ifndef S_BLKSIZE
36+#define S_BLKSIZE 512
37+#endif
38+
39 ss_request_table *extra_cmds;
40 const char *debug_prog_name;
41 int sci_idx;
42@@ -1563,22 +1573,37 @@ void do_find_free_inode(int argc, char *argv[])
43 }
44
45 #ifndef READ_ONLY
46-static errcode_t copy_file(int fd, ext2_ino_t newfile)
47+static errcode_t copy_file(int fd, ext2_ino_t newfile, int bufsize, int make_holes)
48 {
49 ext2_file_t e2_file;
50 errcode_t retval;
51 int got;
52 unsigned int written;
53- char buf[8192];
54+ char *buf;
55 char *ptr;
56+ char *zero_buf;
57+ int cmp;
58
59 retval = ext2fs_file_open(current_fs, newfile,
60 EXT2_FILE_WRITE, &e2_file);
61 if (retval)
62 return retval;
63
64+ if (!(buf = (char *) malloc(bufsize))){
65+ com_err("copy_file", errno, "can't allocate buffer\n");
66+ return;
67+ }
68+
69+ /* This is used for checking whether the whole block is zero */
70+ retval = ext2fs_get_memzero(bufsize, &zero_buf);
71+ if (retval) {
72+ com_err("copy_file", retval, "can't allocate buffer\n");
73+ free(buf);
74+ return retval;
75+ }
76+
77 while (1) {
78- got = read(fd, buf, sizeof(buf));
79+ got = read(fd, buf, bufsize);
80 if (got == 0)
81 break;
82 if (got < 0) {
83@@ -1586,6 +1611,21 @@ static errcode_t copy_file(int fd, ext2_ino_t newfile)
84 goto fail;
85 }
86 ptr = buf;
87+
88+ /* Sparse copy */
89+ if (make_holes) {
90+ /* Check whether all is zero */
91+ cmp = memcmp(ptr, zero_buf, got);
92+ if (cmp == 0) {
93+ /* The whole block is zero, make a hole */
94+ retval = ext2fs_file_lseek(e2_file, got, EXT2_SEEK_CUR, NULL);
95+ if (retval)
96+ goto fail;
97+ got = 0;
98+ }
99+ }
100+
101+ /* Normal copy */
102 while (got > 0) {
103 retval = ext2fs_file_write(e2_file, ptr,
104 got, &written);
105@@ -1596,10 +1636,14 @@ static errcode_t copy_file(int fd, ext2_ino_t newfile)
106 ptr += written;
107 }
108 }
109+ free(buf);
110+ ext2fs_free_mem(&zero_buf);
111 retval = ext2fs_file_close(e2_file);
112 return retval;
113
114 fail:
115+ free(buf);
116+ ext2fs_free_mem(&zero_buf);
117 (void) ext2fs_file_close(e2_file);
118 return retval;
119 }
120@@ -1612,6 +1656,8 @@ void do_write(int argc, char *argv[])
121 ext2_ino_t newfile;
122 errcode_t retval;
123 struct ext2_inode inode;
124+ int bufsize = IO_BUFSIZE;
125+ int make_holes = 0;
126
127 if (common_args_process(argc, argv, 3, 3, "write",
128 "<native file> <new file>", CHECK_FS_RW))
129@@ -1687,7 +1733,15 @@ void do_write(int argc, char *argv[])
130 return;
131 }
132 if (LINUX_S_ISREG(inode.i_mode)) {
133- retval = copy_file(fd, newfile);
134+ if (statbuf.st_blocks < statbuf.st_size / S_BLKSIZE) {
135+ make_holes = 1;
136+ /*
137+ * Use I/O blocksize as buffer size when
138+ * copying sparse files.
139+ */
140+ bufsize = statbuf.st_blksize;
141+ }
142+ retval = copy_file(fd, newfile, bufsize, make_holes);
143 if (retval)
144 com_err("copy_file", retval, 0);
145 }
146--
1471.7.10.4
148
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-too-short.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-too-short.patch
deleted file mode 100644
index 607305be54..0000000000
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/debugfs-too-short.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1debugfs.c: the max length of debugfs argument is too short
2
3The max length of debugfs argument is 256 which is too short, the
4arguments are two paths, the PATH_MAX is 4096 according to
5/usr/include/linux/limits.h, so use BUFSIZ (which is 8192 on Linux
6systems), that's also what the ss library uses.
7
8Upstream-Status: Submitted
9
10Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
11Acked-by: Darren Hart <dvhart@linux.intel.com>
12---
13 debugfs/debugfs.c | 6 +++++-
14 1 file changed, 5 insertions(+), 1 deletion(-)
15
16diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
17--- a/debugfs/debugfs.c
18+++ b/debugfs/debugfs.c
19@@ -37,6 +37,10 @@ extern char *optarg;
20 #include "../version.h"
21 #include "jfs_user.h"
22
23+#ifndef BUFSIZ
24+#define BUFSIZ 8192
25+#endif
26+
27 ss_request_table *extra_cmds;
28 const char *debug_prog_name;
29 int sci_idx;
30@@ -2311,7 +2315,7 @@ void do_dump_mmp(int argc EXT2FS_ATTR((unused)), char *argv[])
31 static int source_file(const char *cmd_file, int ss_idx)
32 {
33 FILE *f;
34- char buf[256];
35+ char buf[BUFSIZ];
36 char *cp;
37 int exit_status = 0;
38 int retval;
39--
401.8.1.2
41
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/e2fsprogs-fix-tests-f_extent_oobounds.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/e2fsprogs-fix-tests-f_extent_oobounds.patch
deleted file mode 100644
index a4f7077641..0000000000
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/e2fsprogs-fix-tests-f_extent_oobounds.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1From 1bfd0e015be7dd22a44995dd2a7002328aedc0e6 Mon Sep 17 00:00:00 2001
2From: Robert Yang <liezhi.yang@windriver.com>
3Date: Sat, 9 Nov 2013 22:24:37 +0800
4Subject: [PATCH] e2fsprogs: fix tests/f_extent_oobounds
5
6Use $DEBUGFS and $MKE2FS to get the in-tree executables
7for this test.
8
9(Build machines which run make check shouldn't need to have
10e2fsprogs installed, and we should be testing just-built versions
11of the tools anyway)
12
13This patch is from:
14http://www.spinics.net/lists/linux-ext4/msg38880.html
15
16Eric Sandeen had sent it to the upstream, but haven't been merge by now.
17
18Upstream-Status: Backport
19
20Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
21Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
22---
23 tests/f_extent_oobounds/script | 4 ++--
24 1 file changed, 2 insertions(+), 2 deletions(-)
25
26diff --git a/tests/f_extent_oobounds/script b/tests/f_extent_oobounds/script
27index 31ac6c9..b00b031 100644
28--- a/tests/f_extent_oobounds/script
29+++ b/tests/f_extent_oobounds/script
30@@ -4,8 +4,8 @@ SKIP_GUNZIP="true"
31 TEST_DATA="$test_name.tmp"
32
33 dd if=/dev/zero of=$TMPFILE bs=1k count=256 > /dev/null 2>&1
34-mke2fs -Ft ext4 $TMPFILE > /dev/null 2>&1
35-debugfs -w $TMPFILE << EOF > /dev/null 2>&1
36+$MKE2FS -Ft ext4 $TMPFILE > /dev/null 2>&1
37+$DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
38 write /dev/null testfile
39 extent_open testfile
40 insert_node 0 15 100
41--
421.8.3.1
43
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/fallocate.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/fallocate.patch
deleted file mode 100644
index d074c15cfd..0000000000
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/fallocate.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1We assume that fallocate is supported somehow
2but we need to check if we have fallocate()
3this problem shows up on uclibc systems since
4uclibc does not have fallocate() implemented
5
6Upstream-Status: Pending
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9
10Index: e2fsprogs-1.42/lib/ext2fs/unix_io.c
11===================================================================
12--- e2fsprogs-1.42.orig/lib/ext2fs/unix_io.c 2012-01-17 17:24:34.290780625 -0800
13+++ e2fsprogs-1.42/lib/ext2fs/unix_io.c 2012-01-17 17:25:37.338783680 -0800
14@@ -895,7 +895,7 @@
15 goto unimplemented;
16 #endif
17 } else {
18-#ifdef FALLOC_FL_PUNCH_HOLE
19+#if defined FALLOC_FL_PUNCH_HOLE && defined HAVE_FALLOCATE
20 /*
21 * If we are not on block device, try to use punch hole
22 * to reclaim free space.
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/acinclude.m4 b/meta/recipes-devtools/e2fsprogs/e2fsprogs/acinclude.m4
index 4b00668476..4b00668476 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/acinclude.m4
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/acinclude.m4
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/fix-icache.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch
index ad4e3439f4..03c0abc026 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/fix-icache.patch
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch
@@ -16,11 +16,7 @@ cache[0]: cached ino 15 when bufsize = 156 by ext2fs_read_inode_full()
16Then the ino 14 would hit the cache[1] when bufsize = 128 (but it was 16Then the ino 14 would hit the cache[1] when bufsize = 128 (but it was
17cached by bufsize = 156), so there would be errors. 17cached by bufsize = 156), so there would be errors.
18 18
19Note: the upstream has changed the icache lot, so this patch is 19Upstream-Status: [Submitted]
20inappropriate for the upstream, we can drop this patch when we update
21the package.
22
23Upstream-Status: [Inappropriate]
24 20
25Signed-off-by: Robert Yang <liezhi.yang@windriver.com> 21Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
26--- 22---
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/mkdir.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/mkdir.patch
index aa7a2981b4..aa7a2981b4 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/mkdir.patch
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/mkdir.patch
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/populate-extfs.sh b/meta/recipes-devtools/e2fsprogs/e2fsprogs/populate-extfs.sh
index 7de720b115..7de720b115 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/populate-extfs.sh
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/populate-extfs.sh
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/quiet-debugfs.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
index 830e9d57a5..830e9d57a5 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/quiet-debugfs.patch
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/remove.ldconfig.call.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/remove.ldconfig.call.patch
index f3e6eb778f..f3e6eb778f 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs-1.42.8/remove.ldconfig.call.patch
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/remove.ldconfig.call.patch
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.8.bb b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb
index 6175ce7281..0c8ec717f5 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.8.bb
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb
@@ -3,17 +3,13 @@ require e2fsprogs.inc
3 3
4SRC_URI += "file://acinclude.m4 \ 4SRC_URI += "file://acinclude.m4 \
5 file://remove.ldconfig.call.patch \ 5 file://remove.ldconfig.call.patch \
6 file://debugfs-too-short.patch \
7 file://debugfs-sparse-copy.patch \
8 file://fix-icache.patch \ 6 file://fix-icache.patch \
9 file://debugfs-extent-header.patch \
10 file://populate-extfs.sh \ 7 file://populate-extfs.sh \
11 file://e2fsprogs-fix-tests-f_extent_oobounds.patch \
12 file://quiet-debugfs.patch \ 8 file://quiet-debugfs.patch \
13" 9"
14 10
15SRC_URI[md5sum] = "8ef664b6eb698aa6b733df59b17b9ed4" 11SRC_URI[md5sum] = "3f8e41e63b432ba114b33f58674563f7"
16SRC_URI[sha256sum] = "b984aaf1fe888d6a4cf8c2e8d397207879599b5368f1d33232c1ec9d68d00c97" 12SRC_URI[sha256sum] = "2f92ac06e92fa00f2ada3ee67dad012d74d685537527ad1241d82f2d041f2802"
17 13
18EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-elf-shlibs --disable-libuuid --disable-uuidd" 14EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-elf-shlibs --disable-libuuid --disable-uuidd"
19EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs" 15EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs"
@@ -37,9 +33,7 @@ do_install () {
37 rm -f ${D}${base_sbindir}/blkid 33 rm -f ${D}${base_sbindir}/blkid
38 rm -f ${D}${base_sbindir}/fsck 34 rm -f ${D}${base_sbindir}/fsck
39 rm -f ${D}${base_sbindir}/findfs 35 rm -f ${D}${base_sbindir}/findfs
40}
41 36
42do_install_append () {
43 # e2initrd_helper and the pkgconfig files belong in libdir 37 # e2initrd_helper and the pkgconfig files belong in libdir
44 if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then 38 if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
45 install -d ${D}${libdir} 39 install -d ${D}${libdir}