summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/e2fsprogs/e2fsprogs/0006-misc-create_inode.c-create-directory.patch
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2014-10-16 03:05:19 +0200
committerTudor Florea <tudor.florea@enea.com>2014-10-16 03:05:19 +0200
commitc527fd1f14c27855a37f2e8ac5346ce8d940ced2 (patch)
treebb002c1fdf011c41dbd2f0927bed23ecb5f83c97 /meta/recipes-devtools/e2fsprogs/e2fsprogs/0006-misc-create_inode.c-create-directory.patch
downloadpoky-daisy-140929.tar.gz
initial commit for Enea Linux 4.0-140929daisy-140929
Migrated from the internal git server on the daisy-enea-point-release branch Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta/recipes-devtools/e2fsprogs/e2fsprogs/0006-misc-create_inode.c-create-directory.patch')
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/0006-misc-create_inode.c-create-directory.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0006-misc-create_inode.c-create-directory.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0006-misc-create_inode.c-create-directory.patch
new file mode 100644
index 0000000000..5c7ca9c37e
--- /dev/null
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0006-misc-create_inode.c-create-directory.patch
@@ -0,0 +1,62 @@
1From c8d1c43be24489036137f8fdebcfccc208f7cc8b Mon Sep 17 00:00:00 2001
2From: Robert Yang <liezhi.yang@windriver.com>
3Date: Mon, 23 Dec 2013 03:34:14 -0500
4Subject: [PATCH 06/11] misc/create_inode.c: create directory
5
6The do_mkdir_internal() is used for making dir on the target fs, most of
7the code are from debugfs/debugfs.c, the debugfs/debugfs.c will be
8modified to use this function.
9
10Upstream-Status: Backport
11
12Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
13Reviewed-by: Darren Hart <dvhart@linux.intel.com>
14---
15 misc/create_inode.c | 31 +++++++++++++++++++++++++++++++
16 1 file changed, 31 insertions(+)
17
18diff --git a/misc/create_inode.c b/misc/create_inode.c
19index 98f4a93..6a8c92a 100644
20--- a/misc/create_inode.c
21+++ b/misc/create_inode.c
22@@ -135,6 +135,37 @@ try_again:
23 /* Make a directory in the fs */
24 errcode_t do_mkdir_internal(ext2_ino_t cwd, const char *name, struct stat *st)
25 {
26+ char *cp;
27+ ext2_ino_t parent_ino, ino;
28+ errcode_t retval;
29+ struct ext2_inode inode;
30+
31+
32+ cp = strrchr(name, '/');
33+ if (cp) {
34+ *cp = 0;
35+ if ((retval = ext2fs_namei(current_fs, root, cwd, name, &parent_ino))){
36+ com_err(name, retval, 0);
37+ return retval;
38+ }
39+ name = cp+1;
40+ } else
41+ parent_ino = cwd;
42+
43+try_again:
44+ retval = ext2fs_mkdir(current_fs, parent_ino, 0, name);
45+ if (retval == EXT2_ET_DIR_NO_SPACE) {
46+ retval = ext2fs_expand_dir(current_fs, parent_ino);
47+ if (retval) {
48+ com_err(__func__, retval, "while expanding directory");
49+ return retval;
50+ }
51+ goto try_again;
52+ }
53+ if (retval) {
54+ com_err("ext2fs_mkdir", retval, 0);
55+ return retval;
56+ }
57 }
58
59 static errcode_t copy_file(int fd, ext2_ino_t newfile, int bufsize, int make_holes)
60--
611.7.10.4
62