diff options
Diffstat (limited to 'meta/recipes-devtools/e2fsprogs/e2fsprogs/0002-misc-create_inode.c-copy-files-recursively.patch')
-rw-r--r-- | meta/recipes-devtools/e2fsprogs/e2fsprogs/0002-misc-create_inode.c-copy-files-recursively.patch | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0002-misc-create_inode.c-copy-files-recursively.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0002-misc-create_inode.c-copy-files-recursively.patch deleted file mode 100644 index 9bff644ea6..0000000000 --- a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0002-misc-create_inode.c-copy-files-recursively.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 08dfbaf4e3f704232ff46d78c0758a6cfe3961c8 Mon Sep 17 00:00:00 2001 -From: Robert Yang <liezhi.yang@windriver.com> -Date: Mon, 23 Dec 2013 02:59:10 -0500 -Subject: [PATCH 02/11] misc/create_inode.c: copy files recursively - -Use opendir() and readdir() to read the native directory, then use -lstat() to identify the file type and call the corresponding function to -add the file to the filesystem, call the populate_fs() recursively if it -is a directory. - -NOTE: the libext2fs can't create the socket file. - -Upstream-Status: Backport - -Signed-off-by: Robert Yang <liezhi.yang@windriver.com> -Reviewed-by: Darren Hart <dvhart@linux.intel.com> ---- - misc/create_inode.c | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 97 insertions(+) - -diff --git a/misc/create_inode.c b/misc/create_inode.c -index 46aaa60..b68b910 100644 ---- a/misc/create_inode.c -+++ b/misc/create_inode.c -@@ -1,5 +1,13 @@ - #include "create_inode.h" - -+#if __STDC_VERSION__ < 199901L -+# if __GNUC__ >= 2 -+# define __func__ __FUNCTION__ -+# else -+# define __func__ "<unknown>" -+# endif -+#endif -+ - /* Make a special file which is block, character and fifo */ - errcode_t do_mknod_internal(ext2_ino_t cwd, const char *name, struct stat *st) - { -@@ -23,4 +31,93 @@ errcode_t do_write_internal(ext2_ino_t cwd, const char *src, const char *dest) - /* Copy files from source_dir to fs */ - errcode_t populate_fs(ext2_ino_t parent_ino, const char *source_dir) - { -+ const char *name; -+ DIR *dh; -+ struct dirent *dent; -+ struct stat st; -+ char ln_target[PATH_MAX]; -+ ext2_ino_t ino; -+ errcode_t retval; -+ int read_cnt; -+ -+ root = EXT2_ROOT_INO; -+ -+ if (chdir(source_dir) < 0) { -+ com_err(__func__, errno, -+ _("while changing working directory to \"%s\""), source_dir); -+ return errno; -+ } -+ -+ if (!(dh = opendir("."))) { -+ com_err(__func__, errno, -+ _("while openning directory \"%s\""), source_dir); -+ return errno; -+ } -+ -+ while((dent = readdir(dh))) { -+ if((!strcmp(dent->d_name, ".")) || (!strcmp(dent->d_name, ".."))) -+ continue; -+ lstat(dent->d_name, &st); -+ name = dent->d_name; -+ -+ switch(st.st_mode & S_IFMT) { -+ case S_IFCHR: -+ case S_IFBLK: -+ case S_IFIFO: -+ if ((retval = do_mknod_internal(parent_ino, name, &st))) { -+ com_err(__func__, retval, -+ _("while creating special file \"%s\""), name); -+ return retval; -+ } -+ break; -+ case S_IFSOCK: -+ /* FIXME: there is no make socket function atm. */ -+ com_err(__func__, 0, -+ _("ignoring socket file \"%s\""), name); -+ continue; -+ case S_IFLNK: -+ if((read_cnt = readlink(name, ln_target, sizeof(ln_target))) == -1) { -+ com_err(__func__, errno, -+ _("while trying to readlink \"%s\""), name); -+ return errno; -+ } -+ ln_target[read_cnt] = '\0'; -+ if ((retval = do_symlink_internal(parent_ino, name, ln_target))) { -+ com_err(__func__, retval, -+ _("while writing symlink\"%s\""), name); -+ return retval; -+ } -+ break; -+ case S_IFREG: -+ if ((retval = do_write_internal(parent_ino, name, name))) { -+ com_err(__func__, retval, -+ _("while writing file \"%s\""), name); -+ return retval; -+ } -+ break; -+ case S_IFDIR: -+ if ((retval = do_mkdir_internal(parent_ino, name, &st))) { -+ com_err(__func__, retval, -+ _("while making dir \"%s\""), name); -+ return retval; -+ } -+ if ((retval = ext2fs_namei(current_fs, root, parent_ino, name, &ino))) { -+ com_err(name, retval, 0); -+ return retval; -+ } -+ /* Populate the dir recursively*/ -+ retval = populate_fs(ino, name); -+ if (retval) { -+ com_err(__func__, retval, _("while adding dir \"%s\""), name); -+ return retval; -+ } -+ chdir(".."); -+ break; -+ default: -+ com_err(__func__, 0, -+ _("ignoring entry \"%s\""), name); -+ } -+ } -+ closedir(dh); -+ return retval; - } --- -1.7.10.4 - |