mirror of
https://git.yoctoproject.org/poky
synced 2026-09-14 03:49:32 +02:00
Sync patches with DOS line endings that became corrupted
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -1,183 +1,183 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
This patch is made by xin.zhong@intel.com to implement these supported
|
||||
features in mkfs.btrfs:
|
||||
* populate fs image from a directory while creating it
|
||||
* reduce minimum size of the created image from 256MB to around 24MB
|
||||
* while creating image use the specified device name rather than output.img
|
||||
|
||||
Patch tested and incorporated in poky by:
|
||||
Nitin A Kamble <nitin.a.kamble@intel.com> 2011/06/20
|
||||
|
||||
diff --git a/file-item.c b/file-item.c
|
||||
index 9732282..aed42c3 100644
|
||||
--- a/file-item.c
|
||||
+++ b/file-item.c
|
||||
@@ -193,7 +193,7 @@ int btrfs_csum_file_block(struct btrfs_trans_handle *trans,
|
||||
struct btrfs_root *root, u64 alloc_end,
|
||||
u64 bytenr, char *data, size_t len)
|
||||
{
|
||||
- int ret;
|
||||
+ int ret = 0;
|
||||
struct btrfs_key file_key;
|
||||
struct btrfs_key found_key;
|
||||
u64 next_offset = (u64)-1;
|
||||
diff --git a/mkfs.c b/mkfs.c
|
||||
index 57c88f9..e953a33 100644
|
||||
--- a/mkfs.c
|
||||
+++ b/mkfs.c
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <uuid/uuid.h>
|
||||
#include <linux/fs.h>
|
||||
#include <ctype.h>
|
||||
-#include <attr/xattr.h>
|
||||
+#include <sys/xattr.h>
|
||||
#include "kerncompat.h"
|
||||
#include "ctree.h"
|
||||
#include "disk-io.h"
|
||||
@@ -517,7 +517,6 @@ static int add_inode_items(struct btrfs_trans_handle *trans,
|
||||
fail:
|
||||
return ret;
|
||||
}
|
||||
-
|
||||
static int add_xattr_item(struct btrfs_trans_handle *trans,
|
||||
struct btrfs_root *root, u64 objectid,
|
||||
const char *file_name)
|
||||
@@ -532,8 +531,10 @@ static int add_xattr_item(struct btrfs_trans_handle *trans,
|
||||
|
||||
ret = llistxattr(file_name, xattr_list, XATTR_LIST_MAX);
|
||||
if (ret < 0) {
|
||||
- fprintf(stderr, "get a list of xattr failed for %s\n",
|
||||
- file_name);
|
||||
+ if(errno == ENOTSUP)
|
||||
+ return 0;
|
||||
+ fprintf(stderr, "get a list of xattr failed for %s errno %d\n",
|
||||
+ file_name, errno);
|
||||
return ret;
|
||||
}
|
||||
if (ret == 0)
|
||||
@@ -546,8 +547,11 @@ static int add_xattr_item(struct btrfs_trans_handle *trans,
|
||||
|
||||
ret = getxattr(file_name, cur_name, cur_value, XATTR_SIZE_MAX);
|
||||
if (ret < 0) {
|
||||
- fprintf(stderr, "get a xattr value failed for %s\n",
|
||||
- cur_name);
|
||||
+ if(errno == ENOTSUP)
|
||||
+ return 0;
|
||||
+ fprintf(stderr, "get a xattr value failed for %s attr %s errno %d\n",
|
||||
+ file_name, cur_name, errno);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
ret = btrfs_insert_xattr_item(trans, root, cur_name,
|
||||
@@ -563,7 +567,6 @@ static int add_xattr_item(struct btrfs_trans_handle *trans,
|
||||
|
||||
return ret;
|
||||
}
|
||||
-
|
||||
static int custom_alloc_extent(struct btrfs_root *root, u64 num_bytes,
|
||||
u64 hint_byte, struct btrfs_key *ins)
|
||||
{
|
||||
@@ -923,27 +926,27 @@ static int traverse_directory(struct btrfs_trans_handle *trans,
|
||||
fprintf(stderr, "add_inode_items failed\n");
|
||||
goto fail;
|
||||
}
|
||||
-
|
||||
ret = add_xattr_item(trans, root,
|
||||
cur_inum, cur_file->d_name);
|
||||
if (ret) {
|
||||
fprintf(stderr, "add_xattr_item failed\n");
|
||||
- goto fail;
|
||||
+ if(ret != -ENOTSUP)
|
||||
+ goto fail;
|
||||
}
|
||||
-
|
||||
if (S_ISDIR(st.st_mode)) {
|
||||
dir_entry = malloc(sizeof(struct directory_name_entry));
|
||||
dir_entry->dir_name = cur_file->d_name;
|
||||
dir_entry->path = make_path(parent_dir_entry->path,
|
||||
cur_file->d_name);
|
||||
dir_entry->inum = cur_inum;
|
||||
- list_add_tail(&dir_entry->list, &dir_head->list);
|
||||
+ list_add_tail(&dir_entry->list, &dir_head->list);
|
||||
} else if (S_ISREG(st.st_mode)) {
|
||||
ret = add_file_items(trans, root, &cur_inode,
|
||||
cur_inum, parent_inum, &st,
|
||||
cur_file->d_name, out_fd);
|
||||
if (ret) {
|
||||
- fprintf(stderr, "add_file_items failed\n");
|
||||
+ fprintf(stderr, "add_file_items failed %s\n",
|
||||
+ cur_file->d_name);
|
||||
goto fail;
|
||||
}
|
||||
} else if (S_ISLNK(st.st_mode)) {
|
||||
@@ -987,7 +990,7 @@ static int create_chunks(struct btrfs_trans_handle *trans,
|
||||
u64 chunk_size;
|
||||
u64 meta_type = BTRFS_BLOCK_GROUP_METADATA;
|
||||
u64 data_type = BTRFS_BLOCK_GROUP_DATA;
|
||||
- u64 minimum_data_chunk_size = 64 * 1024 * 1024;
|
||||
+ u64 minimum_data_chunk_size = 8 * 1024 * 1024;
|
||||
u64 i;
|
||||
int ret;
|
||||
|
||||
@@ -1062,7 +1065,6 @@ static u64 size_sourcedir(char *dir_name, u64 sectorsize,
|
||||
char path[512];
|
||||
char *file_name = "temp_file";
|
||||
FILE *file;
|
||||
- u64 minimum_data_size = 256 * 1024 * 1024; /* 256MB */
|
||||
u64 default_chunk_size = 8 * 1024 * 1024; /* 8MB */
|
||||
u64 allocated_meta_size = 8 * 1024 * 1024; /* 8MB */
|
||||
u64 allocated_total_size = 20 * 1024 * 1024; /* 20MB */
|
||||
@@ -1101,9 +1103,6 @@ static u64 size_sourcedir(char *dir_name, u64 sectorsize,
|
||||
|
||||
*num_of_meta_chunks_ret = num_of_meta_chunks;
|
||||
|
||||
- if (total_size < minimum_data_size)
|
||||
- total_size = minimum_data_size;
|
||||
-
|
||||
return total_size;
|
||||
}
|
||||
|
||||
@@ -1158,9 +1157,9 @@ int main(int ac, char **av)
|
||||
|
||||
char *source_dir = NULL;
|
||||
int source_dir_set = 0;
|
||||
- char *output = "output.img";
|
||||
u64 num_of_meta_chunks = 0;
|
||||
u64 size_of_data = 0;
|
||||
+ u64 source_dir_size = 0;
|
||||
|
||||
while(1) {
|
||||
int c;
|
||||
@@ -1224,8 +1223,6 @@ int main(int ac, char **av)
|
||||
fprintf(stderr, "Illegal nodesize %u\n", nodesize);
|
||||
exit(1);
|
||||
}
|
||||
- if (source_dir_set)
|
||||
- ac++;
|
||||
ac = ac - optind;
|
||||
if (ac == 0)
|
||||
print_usage();
|
||||
@@ -1257,17 +1254,19 @@ int main(int ac, char **av)
|
||||
block_count = dev_block_count;
|
||||
} else {
|
||||
ac = 0;
|
||||
- fd = open_target(output);
|
||||
+ file = av[optind++];
|
||||
+ fd = open_target(file);
|
||||
if (fd < 0) {
|
||||
fprintf(stderr, "unable to open the %s\n", file);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- file = output;
|
||||
first_fd = fd;
|
||||
first_file = file;
|
||||
- block_count = size_sourcedir(source_dir, sectorsize,
|
||||
+ source_dir_size = size_sourcedir(source_dir, sectorsize,
|
||||
&num_of_meta_chunks, &size_of_data);
|
||||
+ if(block_count < source_dir_size)
|
||||
+ block_count = source_dir_size;
|
||||
ret = zero_output_file(fd, block_count, sectorsize);
|
||||
if (ret) {
|
||||
fprintf(stderr, "unable to zero the output file\n");
|
||||
Upstream-Status: Pending
|
||||
|
||||
This patch is made by xin.zhong@intel.com to implement these supported
|
||||
features in mkfs.btrfs:
|
||||
* populate fs image from a directory while creating it
|
||||
* reduce minimum size of the created image from 256MB to around 24MB
|
||||
* while creating image use the specified device name rather than output.img
|
||||
|
||||
Patch tested and incorporated in poky by:
|
||||
Nitin A Kamble <nitin.a.kamble@intel.com> 2011/06/20
|
||||
|
||||
diff --git a/file-item.c b/file-item.c
|
||||
index 9732282..aed42c3 100644
|
||||
--- a/file-item.c
|
||||
+++ b/file-item.c
|
||||
@@ -193,7 +193,7 @@ int btrfs_csum_file_block(struct btrfs_trans_handle *trans,
|
||||
struct btrfs_root *root, u64 alloc_end,
|
||||
u64 bytenr, char *data, size_t len)
|
||||
{
|
||||
- int ret;
|
||||
+ int ret = 0;
|
||||
struct btrfs_key file_key;
|
||||
struct btrfs_key found_key;
|
||||
u64 next_offset = (u64)-1;
|
||||
diff --git a/mkfs.c b/mkfs.c
|
||||
index 57c88f9..e953a33 100644
|
||||
--- a/mkfs.c
|
||||
+++ b/mkfs.c
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <uuid/uuid.h>
|
||||
#include <linux/fs.h>
|
||||
#include <ctype.h>
|
||||
-#include <attr/xattr.h>
|
||||
+#include <sys/xattr.h>
|
||||
#include "kerncompat.h"
|
||||
#include "ctree.h"
|
||||
#include "disk-io.h"
|
||||
@@ -517,7 +517,6 @@ static int add_inode_items(struct btrfs_trans_handle *trans,
|
||||
fail:
|
||||
return ret;
|
||||
}
|
||||
-
|
||||
static int add_xattr_item(struct btrfs_trans_handle *trans,
|
||||
struct btrfs_root *root, u64 objectid,
|
||||
const char *file_name)
|
||||
@@ -532,8 +531,10 @@ static int add_xattr_item(struct btrfs_trans_handle *trans,
|
||||
|
||||
ret = llistxattr(file_name, xattr_list, XATTR_LIST_MAX);
|
||||
if (ret < 0) {
|
||||
- fprintf(stderr, "get a list of xattr failed for %s\n",
|
||||
- file_name);
|
||||
+ if(errno == ENOTSUP)
|
||||
+ return 0;
|
||||
+ fprintf(stderr, "get a list of xattr failed for %s errno %d\n",
|
||||
+ file_name, errno);
|
||||
return ret;
|
||||
}
|
||||
if (ret == 0)
|
||||
@@ -546,8 +547,11 @@ static int add_xattr_item(struct btrfs_trans_handle *trans,
|
||||
|
||||
ret = getxattr(file_name, cur_name, cur_value, XATTR_SIZE_MAX);
|
||||
if (ret < 0) {
|
||||
- fprintf(stderr, "get a xattr value failed for %s\n",
|
||||
- cur_name);
|
||||
+ if(errno == ENOTSUP)
|
||||
+ return 0;
|
||||
+ fprintf(stderr, "get a xattr value failed for %s attr %s errno %d\n",
|
||||
+ file_name, cur_name, errno);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
ret = btrfs_insert_xattr_item(trans, root, cur_name,
|
||||
@@ -563,7 +567,6 @@ static int add_xattr_item(struct btrfs_trans_handle *trans,
|
||||
|
||||
return ret;
|
||||
}
|
||||
-
|
||||
static int custom_alloc_extent(struct btrfs_root *root, u64 num_bytes,
|
||||
u64 hint_byte, struct btrfs_key *ins)
|
||||
{
|
||||
@@ -923,27 +926,27 @@ static int traverse_directory(struct btrfs_trans_handle *trans,
|
||||
fprintf(stderr, "add_inode_items failed\n");
|
||||
goto fail;
|
||||
}
|
||||
-
|
||||
ret = add_xattr_item(trans, root,
|
||||
cur_inum, cur_file->d_name);
|
||||
if (ret) {
|
||||
fprintf(stderr, "add_xattr_item failed\n");
|
||||
- goto fail;
|
||||
+ if(ret != -ENOTSUP)
|
||||
+ goto fail;
|
||||
}
|
||||
-
|
||||
if (S_ISDIR(st.st_mode)) {
|
||||
dir_entry = malloc(sizeof(struct directory_name_entry));
|
||||
dir_entry->dir_name = cur_file->d_name;
|
||||
dir_entry->path = make_path(parent_dir_entry->path,
|
||||
cur_file->d_name);
|
||||
dir_entry->inum = cur_inum;
|
||||
- list_add_tail(&dir_entry->list, &dir_head->list);
|
||||
+ list_add_tail(&dir_entry->list, &dir_head->list);
|
||||
} else if (S_ISREG(st.st_mode)) {
|
||||
ret = add_file_items(trans, root, &cur_inode,
|
||||
cur_inum, parent_inum, &st,
|
||||
cur_file->d_name, out_fd);
|
||||
if (ret) {
|
||||
- fprintf(stderr, "add_file_items failed\n");
|
||||
+ fprintf(stderr, "add_file_items failed %s\n",
|
||||
+ cur_file->d_name);
|
||||
goto fail;
|
||||
}
|
||||
} else if (S_ISLNK(st.st_mode)) {
|
||||
@@ -987,7 +990,7 @@ static int create_chunks(struct btrfs_trans_handle *trans,
|
||||
u64 chunk_size;
|
||||
u64 meta_type = BTRFS_BLOCK_GROUP_METADATA;
|
||||
u64 data_type = BTRFS_BLOCK_GROUP_DATA;
|
||||
- u64 minimum_data_chunk_size = 64 * 1024 * 1024;
|
||||
+ u64 minimum_data_chunk_size = 8 * 1024 * 1024;
|
||||
u64 i;
|
||||
int ret;
|
||||
|
||||
@@ -1062,7 +1065,6 @@ static u64 size_sourcedir(char *dir_name, u64 sectorsize,
|
||||
char path[512];
|
||||
char *file_name = "temp_file";
|
||||
FILE *file;
|
||||
- u64 minimum_data_size = 256 * 1024 * 1024; /* 256MB */
|
||||
u64 default_chunk_size = 8 * 1024 * 1024; /* 8MB */
|
||||
u64 allocated_meta_size = 8 * 1024 * 1024; /* 8MB */
|
||||
u64 allocated_total_size = 20 * 1024 * 1024; /* 20MB */
|
||||
@@ -1101,9 +1103,6 @@ static u64 size_sourcedir(char *dir_name, u64 sectorsize,
|
||||
|
||||
*num_of_meta_chunks_ret = num_of_meta_chunks;
|
||||
|
||||
- if (total_size < minimum_data_size)
|
||||
- total_size = minimum_data_size;
|
||||
-
|
||||
return total_size;
|
||||
}
|
||||
|
||||
@@ -1158,9 +1157,9 @@ int main(int ac, char **av)
|
||||
|
||||
char *source_dir = NULL;
|
||||
int source_dir_set = 0;
|
||||
- char *output = "output.img";
|
||||
u64 num_of_meta_chunks = 0;
|
||||
u64 size_of_data = 0;
|
||||
+ u64 source_dir_size = 0;
|
||||
|
||||
while(1) {
|
||||
int c;
|
||||
@@ -1224,8 +1223,6 @@ int main(int ac, char **av)
|
||||
fprintf(stderr, "Illegal nodesize %u\n", nodesize);
|
||||
exit(1);
|
||||
}
|
||||
- if (source_dir_set)
|
||||
- ac++;
|
||||
ac = ac - optind;
|
||||
if (ac == 0)
|
||||
print_usage();
|
||||
@@ -1257,17 +1254,19 @@ int main(int ac, char **av)
|
||||
block_count = dev_block_count;
|
||||
} else {
|
||||
ac = 0;
|
||||
- fd = open_target(output);
|
||||
+ file = av[optind++];
|
||||
+ fd = open_target(file);
|
||||
if (fd < 0) {
|
||||
fprintf(stderr, "unable to open the %s\n", file);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- file = output;
|
||||
first_fd = fd;
|
||||
first_file = file;
|
||||
- block_count = size_sourcedir(source_dir, sectorsize,
|
||||
+ source_dir_size = size_sourcedir(source_dir, sectorsize,
|
||||
&num_of_meta_chunks, &size_of_data);
|
||||
+ if(block_count < source_dir_size)
|
||||
+ block_count = source_dir_size;
|
||||
ret = zero_output_file(fd, block_count, sectorsize);
|
||||
if (ret) {
|
||||
fprintf(stderr, "unable to zero the output file\n");
|
||||
|
||||
Reference in New Issue
Block a user