summaryrefslogtreecommitdiff
path: root/convert/source-ext2.c
diff options
context:
space:
mode:
Diffstat (limited to 'convert/source-ext2.c')
-rw-r--r--convert/source-ext2.c44
1 files changed, 8 insertions, 36 deletions
diff --git a/convert/source-ext2.c b/convert/source-ext2.c
index 24744e22..e9277213 100644
--- a/convert/source-ext2.c
+++ b/convert/source-ext2.c
@@ -39,7 +39,8 @@ static int ext2_open_fs(struct btrfs_convert_context *cctx, const char *name)
ret = ext2fs_open(name, open_flag, 0, 0, unix_io_manager, &ext2_fs);
if (ret) {
- fprintf(stderr, "ext2fs_open: %s\n", error_message(ret));
+ if (ret != EXT2_ET_BAD_MAGIC)
+ fprintf(stderr, "ext2fs_open: %s\n", error_message(ret));
return -1;
}
/*
@@ -154,7 +155,8 @@ static int ext2_read_used_space(struct btrfs_convert_context *cctx)
block_nbytes * 8, block_bitmap);
if (ret) {
error("fail to get bitmap from ext2, %s",
- strerror(-ret));
+ error_message(ret));
+ ret = -EINVAL;
break;
}
ret = __ext2_add_one_block(fs, block_bitmap, i, used_tree);
@@ -424,27 +426,6 @@ static int ext2_xattr_check_entry(struct ext2_ext_attr_entry *entry,
return 0;
}
-static inline int ext2_acl_count(size_t size)
-{
- ssize_t s;
- size -= sizeof(ext2_acl_header);
- s = size - 4 * sizeof(ext2_acl_entry_short);
- if (s < 0) {
- if (size % sizeof(ext2_acl_entry_short))
- return -1;
- return size / sizeof(ext2_acl_entry_short);
- } else {
- if (s % sizeof(ext2_acl_entry))
- return -1;
- return s / sizeof(ext2_acl_entry) + 4;
- }
-}
-
-static inline size_t acl_ea_size(int count)
-{
- return sizeof(acl_ea_header) + count * sizeof(acl_ea_entry);
-}
-
static int ext2_acl_to_xattr(void *dst, const void *src,
size_t dst_size, size_t src_size)
{
@@ -659,21 +640,12 @@ out:
free(ext2_inode);
return ret;
}
-#define MINORBITS 20
-#define MKDEV(ma, mi) (((ma) << MINORBITS) | (mi))
static inline dev_t old_decode_dev(u16 val)
{
return MKDEV((val >> 8) & 255, val & 255);
}
-static inline dev_t new_decode_dev(u32 dev)
-{
- unsigned major = (dev & 0xfff00) >> 8;
- unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00);
- return MKDEV(major, minor);
-}
-
static void ext2_copy_inode_item(struct btrfs_inode_item *dst,
struct ext2_inode *src, u32 blocksize)
{
@@ -713,7 +685,7 @@ static void ext2_copy_inode_item(struct btrfs_inode_item *dst,
old_decode_dev(src->i_block[0]));
} else {
btrfs_set_stack_inode_rdev(dst,
- new_decode_dev(src->i_block[1]));
+ decode_dev(src->i_block[1]));
}
}
memset(&dst->reserved, 0, sizeof(dst->reserved));
@@ -833,8 +805,8 @@ static int ext2_copy_inodes(struct btrfs_convert_context *cctx,
struct btrfs_trans_handle *trans;
trans = btrfs_start_transaction(root, 1);
- if (!trans)
- return -ENOMEM;
+ if (IS_ERR(trans))
+ return PTR_ERR(trans);
err = ext2fs_open_inode_scan(ext2_fs, 0, &ext2_scan);
if (err) {
fprintf(stderr, "ext2fs_open_inode_scan: %s\n", error_message(err));
@@ -860,7 +832,7 @@ static int ext2_copy_inodes(struct btrfs_convert_context *cctx,
ret = btrfs_commit_transaction(trans, root);
BUG_ON(ret);
trans = btrfs_start_transaction(root, 1);
- BUG_ON(!trans);
+ BUG_ON(IS_ERR(trans));
}
}
if (err) {