flexbg_size = 1 << fs->super->s_log_groups_per_flex;
flexbg = group / flexbg_size;
- if (size > fs->super->s_blocks_per_group / 8)
- size = fs->super->s_blocks_per_group / 8;
+ if (size > (int) (fs->super->s_blocks_per_group / 8))
+ size = (int) fs->super->s_blocks_per_group / 8;
/*
* Dont do a long search if the previous block
{
errcode_t retval;
blk_t group_blk, start_blk, last_blk, new_blk, blk;
- dgrp_t last_grp;
- int j, rem_grps, flexbg_size = 0;
+ dgrp_t last_grp = 0;
+ int j, rem_grps = 0, flexbg_size = 0;
group_blk = ext2fs_group_first_block(fs, group);
last_blk = ext2fs_group_last_block(fs, group);
{
struct ext2_super_block *sb = fs->super;
struct ext2_group_desc *bg = fs->group_desc;
- int blks, dirty = 0;
+ int dirty = 0;
dgrp_t i;
if (!fs->inode_map)
*
* handle will be left pointing at original record.
*/
-static errcode_t extent_node_split(ext2_extent_handle_t handle, int flags)
+static errcode_t extent_node_split(ext2_extent_handle_t handle)
{
errcode_t retval = 0;
blk_t new_node_pblk;
char *block_buf = NULL;
struct ext2fs_extent extent;
struct extent_path *path, *newpath = 0;
- struct ext3_extent *ex;
struct ext3_extent_header *eh, *neweh;
- char *cp;
int tocopy;
int new_root = 0;
struct ext2_extent_info info;
goto done;
goal_blk = extent.e_pblk;
- retval = extent_node_split(handle, 0);
+ retval = extent_node_split(handle);
if (retval)
goto done;
if (flags & EXT2_EXTENT_INSERT_NOSPLIT) {
return EXT2_ET_CANT_INSERT_EXTENT;
} else {
- dbg_printf("node full - splitting\n");
- retval = extent_node_split(handle, 0);
+ dbg_printf("node full (level %d) - splitting\n",
+ handle->level);
+ retval = extent_node_split(handle);
if (retval)
goto errout;
path = handle->path + handle->level;
/* special case if the extent tree is completely empty */
if ((handle->max_depth == 0) && (path->entries == 0)) {
retval = ext2fs_extent_insert(handle, 0, &newextent);
- goto done;
+ return retval;
}
/* save our original location in the extent tree */
retval = 0;
mapped = 0;
if (!physical) {
- dbg_printf("block already unmapped\n");
+ dbg_printf("block %llu already unmapped\n",
+ logical);
goto done;
}
} else
/* check if already pointing to the requested physical */
if (mapped && (new_uninit == extent_uninit) &&
(extent.e_pblk + (logical - extent.e_lblk) == physical)) {
- dbg_printf("physical block unchanged\n");
+ dbg_printf("physical block (at %llu) unchanged\n", logical);
goto done;
}
if (!mapped) {
- dbg_printf("mapping unmapped logical block\n");
+ dbg_printf("mapping unmapped logical block %llu\n", logical);
if ((logical == extent.e_lblk + extent.e_len) &&
(physical == extent.e_pblk + extent.e_len) &&
(new_uninit == extent_uninit) &&
- (extent.e_len < max_len-1)) {
+ ((int) extent.e_len < max_len-1)) {
extent.e_len++;
retval = ext2fs_extent_replace(handle, 0, &extent);
} else
struct extent_path *path;
char *cp;
struct ext3_extent_header *eh;
- errcode_t retval;
+ errcode_t retval = 0;
EXT2_CHECK_MAGIC(handle, EXT2_ET_MAGIC_EXTENT_HANDLE);
errcode_t retval;
struct ext2fs_extent extent;
int err;
- int flags = 0;
if (common_extent_args_process(argc, argv, 1, 1, "split_node",
"", CHECK_FS_RW | CHECK_FS_BITMAPS))
return;
- retval = extent_node_split(current_handle, flags);
+ retval = extent_node_split(current_handle);
if (retval) {
com_err(argv[0], retval, 0);
return;
#include "ext2_fs.h"
#include "ext2fs.h"
+#ifdef __GNUC__
+#define ATTR(x) __attribute__(x)
+#else
+#define ATTR(x)
+#endif
+
/*
* For checking structure magic numbers...
*/
static char *tdb_file;
static int actual_size;
+static unsigned char mtime_key[] = "filesystem MTIME";
+static unsigned char blksize_key[] = "filesystem BLKSIZE";
+static unsigned char uuid_key[] = "filesystem UUID";
+
errcode_t set_undo_io_backing_manager(io_manager manager)
{
/*
goto err_out;
/* Write to tdb file in the file system byte order */
- tdb_key.dptr = "filesystem MTIME";
- tdb_key.dsize = sizeof("filesystem MTIME");
+ tdb_key.dptr = mtime_key;
+ tdb_key.dsize = sizeof(mtime_key);
tdb_data.dptr = (unsigned char *) &(super.s_mtime);
tdb_data.dsize = sizeof(super.s_mtime);
goto err_out;
}
- tdb_key.dptr = "filesystem UUID";
- tdb_key.dsize = sizeof("filesystem UUID");
+ tdb_key.dptr = uuid_key;
+ tdb_key.dsize = sizeof(uuid_key);
tdb_data.dptr = (unsigned char *)&(super.s_uuid);
tdb_data.dsize = sizeof(super.s_uuid);
errcode_t retval;
TDB_DATA tdb_key, tdb_data;
- tdb_key.dptr = "filesystem BLKSIZE";
- tdb_key.dsize = sizeof("filesystem BLKSIZE");
+ tdb_key.dptr = blksize_key;
+ tdb_key.dsize = sizeof(blksize_key);
tdb_data.dptr = (unsigned char *)&(block_size);
tdb_data.dsize = sizeof(block_size);
unsigned long block, int count)
{
- int size, i, sz;
+ int size, sz;
unsigned long block_num, backing_blk_num;
errcode_t retval = 0;
ext2_loff_t offset;
struct undo_private_data *data;
TDB_DATA tdb_key, tdb_data;
- char *read_ptr;
+ unsigned char *read_ptr;
unsigned long end_block;
data = (struct undo_private_data *) channel->private_data;
return retval;
}
-static errcode_t undo_io_read_error(io_channel channel,
- unsigned long block, int count, void *data,
- size_t size, int actual, errcode_t error)
+static errcode_t undo_io_read_error(io_channel channel ATTR((unused)),
+ unsigned long block ATTR((unused)),
+ int count ATTR((unused)),
+ void *data ATTR((unused)),
+ size_t size ATTR((unused)),
+ int actual,
+ errcode_t error ATTR((unused)))
{
actual_size = actual;
return error;
io_channel io = NULL;
struct undo_private_data *data = NULL;
errcode_t retval;
- int open_flags;
- struct stat st;
if (name == 0)
return EXT2_ET_BAD_DEVICE_NAME;
static errcode_t undo_set_blksize(io_channel channel, int blksize)
{
struct undo_private_data *data;
- errcode_t retval;
+ errcode_t retval = 0;
EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL);
data = (struct undo_private_data *) channel->private_data;
static errcode_t undo_read_blk(io_channel channel, unsigned long block,
int count, void *buf)
{
- errcode_t retval;
+ errcode_t retval = 0;
struct undo_private_data *data;
EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL);
{
struct undo_private_data *data;
errcode_t retval = 0;
- ssize_t actual;
ext2_loff_t location;
unsigned long blk_num, count;;