* %End-Header%
*/
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#ifdef HAVE_GETOPT_H
#include "ext2fs/ext2fs.h"
#include "nls-enable.h"
-unsigned char mtime_key[] = "filesystem MTIME";
-unsigned char uuid_key[] = "filesystem UUID";
-unsigned char blksize_key[] = "filesystem BLKSIZE";
+static unsigned char mtime_key[] = "filesystem MTIME";
+static unsigned char uuid_key[] = "filesystem UUID";
+static unsigned char blksize_key[] = "filesystem BLKSIZE";
-static void usage(char *prg_name)
+static char *prg_name;
+
+static void usage(void)
{
fprintf(stderr,
_("Usage: %s <transaction file> <filesystem>\n"), prg_name);
exit(1);
-
}
static int check_filesystem(TDB_CONTEXT *tdb, io_channel channel)
struct ext2_super_block super;
io_channel_set_blksize(channel, SUPERBLOCK_OFFSET);
- retval = io_channel_read_blk(channel, 1, -SUPERBLOCK_SIZE, &super);
+ retval = io_channel_read_blk64(channel, 1, -SUPERBLOCK_SIZE, &super);
if (retval) {
- com_err(__FUNCTION__,
- retval, _("Failed to read the file system data \n"));
+ com_err(prg_name, retval,
+ "%s", _("Failed to read the file system data \n"));
return retval;
}
tdb_data = tdb_fetch(tdb, tdb_key);
if (!tdb_data.dptr) {
retval = EXT2_ET_TDB_SUCCESS + tdb_error(tdb);
- com_err(__FUNCTION__, retval,
+ com_err(prg_name, retval,
_("Failed tdb_fetch %s\n"), tdb_errorstr(tdb));
return retval;
}
s_mtime = *(__u32 *)tdb_data.dptr;
if (super.s_mtime != s_mtime) {
- com_err(__FUNCTION__, 0,
+ com_err(prg_name, 0,
_("The file system Mount time didn't match %u\n"),
s_mtime);
tdb_data = tdb_fetch(tdb, tdb_key);
if (!tdb_data.dptr) {
retval = EXT2_ET_TDB_SUCCESS + tdb_error(tdb);
- com_err(__FUNCTION__, retval,
+ com_err(prg_name, retval,
_("Failed tdb_fetch %s\n"), tdb_errorstr(tdb));
return retval;
}
memcpy(s_uuid, tdb_data.dptr, sizeof(s_uuid));
if (memcmp(s_uuid, super.s_uuid, sizeof(s_uuid))) {
- com_err(__FUNCTION__, 0,
+ com_err(prg_name, 0, "%s",
_("The file system UUID didn't match \n"));
return -1;
}
tdb_data = tdb_fetch(tdb, tdb_key);
if (!tdb_data.dptr) {
retval = EXT2_ET_TDB_SUCCESS + tdb_error(tdb);
- com_err(__FUNCTION__, retval,
+ com_err(prg_name, retval,
_("Failed tdb_fetch %s\n"), tdb_errorstr(tdb));
return retval;
}
io_channel channel;
errcode_t retval;
int mount_flags;
- unsigned long blk_num;
- char *device_name, *tdb_file, *prg_name;
+ blk64_t blk_num;
+ char *device_name, *tdb_file;
io_manager manager = unix_io_manager;
#ifdef ENABLE_NLS
setlocale(LC_CTYPE, "");
bindtextdomain(NLS_CAT_NAME, LOCALEDIR);
textdomain(NLS_CAT_NAME);
+ set_com_err_gettext(gettext);
#endif
+ add_error_table(&et_ext2_error_table);
prg_name = argv[0];
while((c = getopt(argc, argv, "f")) != EOF) {
force = 1;
break;
default:
- usage(prg_name);
+ usage();
}
}
- if (argc != optind+2)
- usage(prg_name);
+ if (argc != optind + 2)
+ usage();
tdb_file = argv[optind];
device_name = argv[optind+1];
}
if (mount_flags & EXT2_MF_MOUNTED) {
- com_err(prg_name, retval, _("undoe2fs should only be run on "
- "unmounted file system\n"));
+ com_err(prg_name, retval, "%s", _("e2undo should only be run "
+ "on unmounted file system\n"));
exit(1);
}
_("Failed tdb_fetch %s\n"), tdb_errorstr(tdb));
exit(1);
}
- blk_num = *(unsigned long *)key.dptr;
- printf(_("Replayed transaction of size %zd at location %ld\n"),
+ blk_num = *(blk64_t *)key.dptr;
+ printf(_("Replayed transaction of size %zd at location %llu\n"),
data.dsize, blk_num);
- retval = io_channel_write_blk(channel, blk_num,
+ retval = io_channel_write_blk64(channel, blk_num,
-data.dsize, data.dptr);
if (retval == -1) {
com_err(prg_name, retval,