diff options
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r-- | meta/recipes-devtools/btrfs-tools/btrfs-tools/allow-relative-path.patch | 58 | ||||
-rw-r--r-- | meta/recipes-devtools/btrfs-tools/btrfs-tools_git.bb | 4 |
2 files changed, 61 insertions, 1 deletions
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools/allow-relative-path.patch b/meta/recipes-devtools/btrfs-tools/btrfs-tools/allow-relative-path.patch new file mode 100644 index 0000000000..695973eded --- /dev/null +++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools/allow-relative-path.patch | |||
@@ -0,0 +1,58 @@ | |||
1 | From: Gui Hecheng <guihc.fnst@cn.fujitsu.com> | ||
2 | |||
3 | The bug accurs when exec: | ||
4 | # mkfs.btrfs -r <a relative path> <device> | ||
5 | (note: the path should be 'valid' correspond to your `pwd`) | ||
6 | error msg: | ||
7 | $ scandir for <a relative path> failed: No such file... | ||
8 | |||
9 | Replace strdup() with realpath() to get the correct scan path. | ||
10 | |||
11 | Upstream-Status: Backport (pending) | ||
12 | |||
13 | Reported-by: Saul Wold <sgw@linux.intel.com> | ||
14 | Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com> | ||
15 | --- | ||
16 | mkfs.c | 5 ++--- | ||
17 | 1 file changed, 2 insertions(+), 3 deletions(-) | ||
18 | |||
19 | diff --git a/mkfs.c b/mkfs.c | ||
20 | index 2dc90c2..1bd3069 100644 | ||
21 | --- a/mkfs.c | ||
22 | +++ b/mkfs.c | ||
23 | @@ -756,6 +756,7 @@ static int traverse_directory(struct btrfs_trans_handle *trans, | ||
24 | ino_t parent_inum, cur_inum; | ||
25 | ino_t highest_inum = 0; | ||
26 | char *parent_dir_name; | ||
27 | + char real_path[PATH_MAX]; | ||
28 | struct btrfs_path path; | ||
29 | struct extent_buffer *leaf; | ||
30 | struct btrfs_key root_dir_key; | ||
31 | @@ -764,7 +765,7 @@ static int traverse_directory(struct btrfs_trans_handle *trans, | ||
32 | /* Add list for source directory */ | ||
33 | dir_entry = malloc(sizeof(struct directory_name_entry)); | ||
34 | dir_entry->dir_name = dir_name; | ||
35 | - dir_entry->path = strdup(dir_name); | ||
36 | + dir_entry->path = realpath(dir_name, real_path); | ||
37 | |||
38 | parent_inum = highest_inum + BTRFS_FIRST_FREE_OBJECTID; | ||
39 | dir_entry->inum = parent_inum; | ||
40 | @@ -876,7 +877,6 @@ static int traverse_directory(struct btrfs_trans_handle *trans, | ||
41 | } | ||
42 | |||
43 | free_namelist(files, count); | ||
44 | - free(parent_dir_entry->path); | ||
45 | free(parent_dir_entry); | ||
46 | |||
47 | index_cnt = 2; | ||
48 | @@ -887,7 +887,6 @@ static int traverse_directory(struct btrfs_trans_handle *trans, | ||
49 | fail: | ||
50 | free_namelist(files, count); | ||
51 | fail_no_files: | ||
52 | - free(parent_dir_entry->path); | ||
53 | free(parent_dir_entry); | ||
54 | return -1; | ||
55 | } | ||
56 | -- | ||
57 | 1.8.1.4 | ||
58 | |||
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools_git.bb b/meta/recipes-devtools/btrfs-tools/btrfs-tools_git.bb index 7ecce60763..8129cd5e99 100644 --- a/meta/recipes-devtools/btrfs-tools/btrfs-tools_git.bb +++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools_git.bb | |||
@@ -14,7 +14,9 @@ DEPENDS = "util-linux attr e2fsprogs lzo acl" | |||
14 | 14 | ||
15 | SRCREV = "8cae1840afb3ea44dcc298f32983e577480dfee4" | 15 | SRCREV = "8cae1840afb3ea44dcc298f32983e577480dfee4" |
16 | SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git \ | 16 | SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git \ |
17 | file://weak-defaults.patch" | 17 | file://weak-defaults.patch \ |
18 | file://allow-relative-path.patch \ | ||
19 | " | ||
18 | 20 | ||
19 | S = "${WORKDIR}/git" | 21 | S = "${WORKDIR}/git" |
20 | 22 | ||