Many files:
debugfs.c, debugfs.h, dump.c, icheck.c, ls.c, lsdel.c, ncheck.c,
setsuper.c, util.c: Change ino_t to ext2_ino_t. Fix a few minor
gcc-wall complaints while we're at it.
diff --git a/debugfs/ChangeLog b/debugfs/ChangeLog
index 2e4df37..9d1bbd7 100644
--- a/debugfs/ChangeLog
+++ b/debugfs/ChangeLog
@@ -1,3 +1,9 @@
+2001-01-11 <tytso@snap.thunk.org>
+
+ * debugfs.c, debugfs.h, dump.c, icheck.c, ls.c, lsdel.c, ncheck.c,
+ setsuper.c, util.c: Change ino_t to ext2_ino_t. Fix a few
+ minor gcc-wall complaints while we're at it.
+
2001-01-01 <tytso@snap.thunk.org>
* debugfs.c Replace use of struct ext2fs_sb with struct
diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
index 846f607..003ccef 100644
--- a/debugfs/debugfs.c
+++ b/debugfs/debugfs.c
@@ -40,8 +40,8 @@
extern ss_request_table debug_cmds;
-ext2_filsys current_fs = NULL;
-ino_t root, cwd;
+ext2_filsys current_fs = NULL;
+ext2_ino_t root, cwd;
static void open_filesystem(char *device, int open_flags, blk_t superblock,
blk_t blocksize, int catastrophic)
@@ -253,8 +253,6 @@
FILE *out;
struct ext2_group_desc *gdp;
int c, header_only = 0;
- char buf[80];
- const char *none = "(none)";
const char *usage = "Usage: show_super [-h]";
optind = 0;
@@ -386,7 +384,7 @@
}
-static void dump_blocks(FILE *f, ino_t inode)
+static void dump_blocks(FILE *f, ext2_ino_t inode)
{
struct list_blocks_struct lb;
@@ -404,7 +402,7 @@
}
-static void dump_inode(ino_t inode_num, struct ext2_inode inode)
+static void dump_inode(ext2_ino_t inode_num, struct ext2_inode inode)
{
const char *i_type;
FILE *out;
@@ -420,7 +418,7 @@
else if (LINUX_S_ISFIFO(inode.i_mode)) i_type = "FIFO";
else if (LINUX_S_ISSOCK(inode.i_mode)) i_type = "socket";
else i_type = "bad type";
- fprintf(out, "Inode: %ld Type: %s ", inode_num, i_type);
+ fprintf(out, "Inode: %u Type: %s ", inode_num, i_type);
fprintf(out, "Mode: %04o Flags: 0x%x Generation: %u\n",
inode.i_mode & 0777, inode.i_flags, inode.i_generation);
fprintf(out, "User: %5d Group: %5d Size: ",
@@ -481,9 +479,9 @@
void do_stat(int argc, char *argv[])
{
- ino_t inode;
+ ext2_ino_t inode;
struct ext2_inode inode_buf;
- int retval;
+ int retval;
if (argc != 2) {
com_err(argv[0], 0, "Usage: stat <file>");
@@ -508,7 +506,7 @@
void do_chroot(int argc, char *argv[])
{
- ino_t inode;
+ ext2_ino_t inode;
int retval;
if (argc != 2) {
@@ -531,7 +529,7 @@
void do_clri(int argc, char *argv[])
{
- ino_t inode;
+ ext2_ino_t inode;
int retval;
struct ext2_inode inode_buf;
@@ -564,7 +562,7 @@
void do_freei(int argc, char *argv[])
{
- ino_t inode;
+ ext2_ino_t inode;
if (argc != 2) {
com_err(argv[0], 0, "Usage: freei <file>");
@@ -586,7 +584,7 @@
void do_seti(int argc, char *argv[])
{
- ino_t inode;
+ ext2_ino_t inode;
if (argc != 2) {
com_err(argv[0], 0, "Usage: seti <file>");
@@ -608,7 +606,7 @@
void do_testi(int argc, char *argv[])
{
- ino_t inode;
+ ext2_ino_t inode;
if (argc != 2) {
com_err(argv[0], 0, "Usage: testi <file>");
@@ -623,9 +621,9 @@
return;
if (ext2fs_test_inode_bitmap(current_fs->inode_map,inode))
- printf("Inode %ld is marked in use\n", inode);
+ printf("Inode %u is marked in use\n", inode);
else
- printf("Inode %ld is not in use\n", inode);
+ printf("Inode %u is not in use\n", inode);
}
@@ -767,15 +765,15 @@
void do_modify_inode(int argc, char *argv[])
{
struct ext2_inode inode;
- ino_t inode_num;
- int i;
+ ext2_ino_t inode_num;
+ int i;
errcode_t retval;
- unsigned char *frag, *fsize;
- char buf[80];
- int os = current_fs->super->s_creator_os;
- const char *hex_format = "0x%x";
- const char *octal_format = "0%o";
- const char *decimal_format = "%d";
+ unsigned char *frag, *fsize;
+ char buf[80];
+ int os = current_fs->super->s_creator_os;
+ const char *hex_format = "0x%x";
+ const char *octal_format = "0%o";
+ const char *decimal_format = "%d";
if (argc != 2) {
com_err(argv[0], 0, "Usage: modify_inode <file>");
@@ -864,8 +862,8 @@
void do_change_working_dir(int argc, char *argv[])
{
- ino_t inode;
- int retval;
+ ext2_ino_t inode;
+ int retval;
if (argc != 2) {
com_err(argv[0], 0, "Usage: cd <file>");
@@ -904,24 +902,24 @@
com_err(argv[0], retval,
"while trying to get pathname of cwd");
}
- printf("[pwd] INODE: %6ld PATH: %s\n", cwd, pathname);
+ printf("[pwd] INODE: %6u PATH: %s\n", cwd, pathname);
free(pathname);
retval = ext2fs_get_pathname(current_fs, root, 0, &pathname);
if (retval) {
com_err(argv[0], retval,
"while trying to get pathname of root");
}
- printf("[root] INODE: %6ld PATH: %s\n", root, pathname);
+ printf("[root] INODE: %6u PATH: %s\n", root, pathname);
free(pathname);
return;
}
static void make_link(char *sourcename, char *destname)
{
- ino_t inode;
- int retval;
- ino_t dir;
- char *dest, *cp, *basename;
+ ext2_ino_t inode;
+ int retval;
+ ext2_ino_t dir;
+ char *dest, *cp, *basename;
/*
* Get the source inode
@@ -979,9 +977,9 @@
static void unlink_file_by_name(char *filename)
{
- int retval;
- ino_t dir;
- char *basename;
+ int retval;
+ ext2_ino_t dir;
+ char *basename;
basename = strrchr(filename, '/');
if (basename) {
@@ -1044,10 +1042,10 @@
void do_find_free_inode(int argc, char *argv[])
{
- ino_t free_inode, dir;
- int mode;
- int retval;
- char *tmp;
+ ext2_ino_t free_inode, dir;
+ int mode;
+ int retval;
+ char *tmp;
if (argc > 3 || (argc>1 && *argv[1] == '?')) {
com_err(argv[0], 0, "Usage: find_free_inode [dir] [mode]");
@@ -1078,10 +1076,10 @@
if (retval)
com_err("ext2fs_new_inode", retval, "");
else
- printf("Free inode found: %ld\n", free_inode);
+ printf("Free inode found: %u\n", free_inode);
}
-static errcode_t copy_file(int fd, ino_t newfile)
+static errcode_t copy_file(int fd, ext2_ino_t newfile)
{
ext2_file_t e2_file;
errcode_t retval;
@@ -1125,12 +1123,12 @@
void do_write(int argc, char *argv[])
{
- int fd;
- struct stat statbuf;
- ino_t newfile;
- errcode_t retval;
+ int fd;
+ struct stat statbuf;
+ ext2_ino_t newfile;
+ errcode_t retval;
struct ext2_inode inode;
- dgrp_t group;
+ dgrp_t group;
if (check_fs_open(argv[0]))
return;
@@ -1161,7 +1159,7 @@
current_fs->group_desc[group].bg_free_inodes_count--;
current_fs->super->s_free_inodes_count--;
ext2fs_mark_super_dirty(current_fs);
- printf("Allocated inode: %ld\n", newfile);
+ printf("Allocated inode: %u\n", newfile);
retval = ext2fs_link(current_fs, cwd, argv[2], newfile, 0);
if (retval) {
com_err(argv[2], retval, "");
@@ -1195,9 +1193,9 @@
void do_mknod(int argc, char *argv[])
{
- unsigned long mode, major, minor, nr;
- ino_t newfile;
- errcode_t retval;
+ unsigned long mode, major, minor, nr;
+ ext2_ino_t newfile;
+ errcode_t retval;
struct ext2_inode inode;
if (check_fs_open(argv[0]))
@@ -1240,7 +1238,7 @@
com_err(argv[0], retval, "");
return;
}
- printf("Allocated inode: %ld\n", newfile);
+ printf("Allocated inode: %u\n", newfile);
retval = ext2fs_link(current_fs, cwd, argv[1], newfile, 0);
if (retval) {
if (retval == EXT2_ET_DIR_NO_SPACE) {
@@ -1274,7 +1272,7 @@
void do_mkdir(int argc, char *argv[])
{
char *cp;
- ino_t parent;
+ ext2_ino_t parent;
char *name;
errcode_t retval;
@@ -1326,7 +1324,7 @@
return 0;
}
-static void kill_file_by_inode(ino_t inode)
+static void kill_file_by_inode(ext2_ino_t inode)
{
struct ext2_inode inode_buf;
@@ -1334,7 +1332,7 @@
inode_buf.i_dtime = time(NULL);
ext2fs_write_inode(current_fs, inode, &inode_buf);
- printf("Kill file by inode %ld\n", inode);
+ printf("Kill file by inode %u\n", inode);
ext2fs_block_iterate(current_fs, inode, 0, NULL,
release_blocks_proc, NULL);
printf("\n");
@@ -1347,7 +1345,7 @@
void do_kill_file(int argc, char *argv[])
{
- ino_t inode_num;
+ ext2_ino_t inode_num;
if (argc != 2) {
com_err(argv[0], 0, "Usage: kill_file <file>");
@@ -1370,7 +1368,7 @@
void do_rm(int argc, char *argv[])
{
int retval;
- ino_t inode_num;
+ ext2_ino_t inode_num;
struct ext2_inode inode;
if (argc != 2) {
@@ -1425,7 +1423,7 @@
void do_expand_dir(int argc, char *argv[])
{
- ino_t inode;
+ ext2_ino_t inode;
int retval;
if (argc != 2) {
diff --git a/debugfs/debugfs.h b/debugfs/debugfs.h
index f5d3d53..d1b8e25 100644
--- a/debugfs/debugfs.h
+++ b/debugfs/debugfs.h
@@ -13,7 +13,7 @@
#endif
extern ext2_filsys current_fs;
-extern ino_t root, cwd;
+extern ext2_ino_t root, cwd;
extern FILE *open_pager(void);
extern void close_pager(FILE *stream);
@@ -21,7 +21,7 @@
extern int check_fs_not_open(char *name);
extern int check_fs_read_write(char *name);
extern int check_fs_bitmaps(char *name);
-extern ino_t string_to_inode(char *str);
+extern ext2_ino_t string_to_inode(char *str);
extern char *time_to_string(__u32);
/* ss command functions */
@@ -29,6 +29,7 @@
/* dump.c */
extern void do_dump(int argc, char **argv);
extern void do_cat(int argc, char **argv);
+extern void do_rdump(int argc, char **argv);
/* lsdel.c */
extern void do_lsdel(int argc, char **argv);
@@ -43,6 +44,7 @@
extern void do_dirty_filesys(int argc, char **argv);
extern void do_open_filesys(int argc, char **argv);
extern void do_close_filesys(int argc, char **argv);
+extern void do_lcd(int argc, char **argv);
extern void do_init_filesys(int argc, char **argv);
extern void do_show_super_stats(int argc, char **argv);
extern void do_kill_file(int argc, char **argv);
diff --git a/debugfs/dump.c b/debugfs/dump.c
index e946437..e290c14 100644
--- a/debugfs/dump.c
+++ b/debugfs/dump.c
@@ -94,12 +94,11 @@
com_err(cmd, errno, "while setting times of %s", name);
}
-static void dump_file(char *cmdname, ino_t ino, int fd, int preserve,
- char *outname)
+static void dump_file(const char *cmdname, ext2_ino_t ino, int fd,
+ int preserve, char *outname)
{
errcode_t retval;
struct ext2_inode inode;
- struct utimbuf ut;
char buf[8192];
ext2_file_t e2_file;
int nbytes;
@@ -143,12 +142,12 @@
void do_dump(int argc, char **argv)
{
- ino_t inode;
- int fd;
- int c;
- int preserve = 0;
+ ext2_ino_t inode;
+ int fd;
+ int c;
+ int preserve = 0;
const char *dump_usage = "Usage: dump_inode [-p] <file> <output_file>";
- char *in_fn, *out_fn;
+ char *in_fn, *out_fn;
optind = 0;
#ifdef HAVE_OPTRESET
@@ -191,7 +190,7 @@
return;
}
-static void rdump_symlink(ino_t ino, struct ext2_inode *inode,
+static void rdump_symlink(ext2_ino_t ino, struct ext2_inode *inode,
const char *fullname)
{
ext2_file_t e2_file;
@@ -245,11 +244,10 @@
static int rdump_dirent(struct ext2_dir_entry *, int, int, char *, void *);
-static void rdump_inode(ino_t ino, struct ext2_inode *inode,
+static void rdump_inode(ext2_ino_t ino, struct ext2_inode *inode,
const char *name, const char *dumproot)
{
char *fullname;
- struct utimbuf ut;
/* There are more efficient ways to do this, but this method
* requires only minimal debugging. */
@@ -322,7 +320,7 @@
void do_rdump(int argc, char **argv)
{
- ino_t ino;
+ ext2_ino_t ino;
struct ext2_inode inode;
errcode_t retval;
struct stat st;
@@ -369,7 +367,7 @@
void do_cat(int argc, char **argv)
{
- ino_t inode;
+ ext2_ino_t inode;
if (argc != 2) {
com_err(argv[0], 0, "Usage: cat <file>");
diff --git a/debugfs/icheck.c b/debugfs/icheck.c
index 136c52e..33daa3b 100644
--- a/debugfs/icheck.c
+++ b/debugfs/icheck.c
@@ -19,15 +19,15 @@
#include "debugfs.h"
struct block_info {
- blk_t blk;
- ino_t ino;
+ blk_t blk;
+ ext2_ino_t ino;
};
struct block_walk_struct {
struct block_info *barray;
int blocks_left;
int num_blocks;
- ino_t inode;
+ ext2_ino_t inode;
};
static int icheck_proc(ext2_filsys fs,
@@ -56,7 +56,7 @@
struct block_info *binfo;
int i;
ext2_inode_scan scan = 0;
- ino_t ino;
+ ext2_ino_t ino;
struct ext2_inode inode;
errcode_t retval;
char *tmp;
@@ -149,7 +149,7 @@
printf("%u\t<block not found>\n", binfo->blk);
continue;
}
- printf("%u\t%ld\n", binfo->blk, binfo->ino);
+ printf("%u\t%u\n", binfo->blk, binfo->ino);
}
error_out:
diff --git a/debugfs/ls.c b/debugfs/ls.c
index 4c96db4..e24bdb3 100644
--- a/debugfs/ls.c
+++ b/debugfs/ls.c
@@ -33,7 +33,7 @@
static const char *monstr[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
-static void ls_l_file(struct list_dir_struct *ls, char *name, ino_t ino)
+static void ls_l_file(struct list_dir_struct *ls, char *name, ext2_ino_t ino)
{
struct ext2_inode inode;
errcode_t retval;
@@ -51,7 +51,7 @@
sprintf(datestr, "%2d-%s-%4d %02d:%02d",
tm_p->tm_mday, monstr[tm_p->tm_mon], 1900 + tm_p->tm_year,
tm_p->tm_hour, tm_p->tm_min);
- fprintf(ls->f, "%6ld %6o %5d %5d ", ino, inode.i_mode,
+ fprintf(ls->f, "%6u %6o %5d %5d ", ino, inode.i_mode,
inode.i_uid, inode.i_gid);
if (LINUX_S_ISDIR(inode.i_mode))
fprintf(ls->f, "%5d", inode.i_size);
@@ -62,12 +62,12 @@
}
static void ls_file(struct list_dir_struct *ls, char *name,
- ino_t ino, int rec_len)
+ ext2_ino_t ino, int rec_len)
{
char tmp[EXT2_NAME_LEN + 16];
int thislen;
- sprintf(tmp, "%ld (%d) %s ", ino, rec_len, name);
+ sprintf(tmp, "%u (%d) %s ", ino, rec_len, name);
thislen = strlen(tmp);
if (ls->col + thislen > 80) {
@@ -105,10 +105,10 @@
void do_list_dir(int argc, char *argv[])
{
- ino_t inode;
- int retval;
+ ext2_ino_t inode;
+ int retval;
struct list_dir_struct ls;
- int argptr = 1;
+ int argptr = 1;
ls.options = 0;
if (check_fs_open(argv[0]))
diff --git a/debugfs/lsdel.c b/debugfs/lsdel.c
index 3eb9037..0165676 100644
--- a/debugfs/lsdel.c
+++ b/debugfs/lsdel.c
@@ -20,17 +20,17 @@
#include "debugfs.h"
struct deleted_info {
- ino_t ino;
- unsigned short mode;
- unsigned short uid;
- __u64 size;
- time_t dtime;
- int num_blocks;
- int free_blocks;
+ ext2_ino_t ino;
+ unsigned short mode;
+ unsigned short uid;
+ __u64 size;
+ time_t dtime;
+ int num_blocks;
+ int free_blocks;
};
struct lsdel_struct {
- ino_t inode;
+ ext2_ino_t inode;
int num_blocks;
int free_blocks;
int bad_blocks;
@@ -73,7 +73,7 @@
struct deleted_info *delarray;
int num_delarray, max_delarray;
ext2_inode_scan scan = 0;
- ino_t ino;
+ ext2_ino_t ino;
struct ext2_inode inode;
errcode_t retval;
char *block_buf;
@@ -177,7 +177,7 @@
deleted_info_compare);
for (i = 0; i < num_delarray; i++) {
- printf("%6lu %6d %6o %6llu %4d/%4d %s", delarray[i].ino,
+ printf("%6u %6d %6o %6llu %4d/%4d %s", delarray[i].ino,
delarray[i].uid, delarray[i].mode, delarray[i].size,
delarray[i].free_blocks, delarray[i].num_blocks,
time_to_string(delarray[i].dtime));
diff --git a/debugfs/ncheck.c b/debugfs/ncheck.c
index 83fe9b5..2c2845c 100644
--- a/debugfs/ncheck.c
+++ b/debugfs/ncheck.c
@@ -19,9 +19,9 @@
#include "debugfs.h"
struct inode_info {
- ino_t ino;
- ino_t parent;
- char *pathname;
+ ext2_ino_t ino;
+ ext2_ino_t parent;
+ char *pathname;
};
struct inode_walk_struct {
@@ -29,7 +29,7 @@
int inodes_left;
int num_inodes;
int position;
- ino_t parent;
+ ext2_ino_t parent;
};
static int ncheck_proc(struct ext2_dir_entry *dirent,
@@ -62,7 +62,7 @@
struct inode_info *iinfo;
int i;
ext2_inode_scan scan = 0;
- ino_t ino;
+ ext2_ino_t ino;
struct ext2_inode inode;
errcode_t retval;
char *tmp;
@@ -159,10 +159,10 @@
printf("Inode\tPathname\n");
for (i=0, iinfo = iw.iarray; i < iw.num_inodes; i++, iinfo++) {
if (iinfo->parent == 0) {
- printf("%ld\t<inode not found>\n", iinfo->ino);
+ printf("%u\t<inode not found>\n", iinfo->ino);
continue;
}
- printf("%ld\t%s\n", iinfo->ino, iinfo->pathname ?
+ printf("%u\t%s\n", iinfo->ino, iinfo->pathname ?
iinfo->pathname : "<unknown pathname>");
if (iinfo->pathname)
free(iinfo->pathname);
diff --git a/debugfs/setsuper.c b/debugfs/setsuper.c
index ae20e08..d7e8691 100644
--- a/debugfs/setsuper.c
+++ b/debugfs/setsuper.c
@@ -21,7 +21,7 @@
static struct ext2_super_block set_sb;
struct super_set_info {
- char *name;
+ const char *name;
void *ptr;
int size;
errcode_t (*func)(struct super_set_info *info, char *arg);
@@ -170,10 +170,6 @@
void do_set_super(int argc, char *argv[])
{
- char *cp;
- ino_t parent;
- char *name;
- errcode_t retval;
static struct super_set_info *ss;
if (check_fs_open(argv[0]))
diff --git a/debugfs/util.c b/debugfs/util.c
index 70c5d3f..fc328be 100644
--- a/debugfs/util.c
+++ b/debugfs/util.c
@@ -19,7 +19,7 @@
FILE *open_pager(void)
{
FILE *outfile;
- char *pager = getenv("PAGER");
+ const char *pager = getenv("PAGER");
signal(SIGPIPE, SIG_IGN);
if (!pager)
@@ -41,12 +41,12 @@
* This routine is used whenever a command needs to turn a string into
* an inode.
*/
-ino_t string_to_inode(char *str)
+ext2_ino_t string_to_inode(char *str)
{
- ino_t ino;
- int len = strlen(str);
- char *end;
- int retval;
+ ext2_ino_t ino;
+ int len = strlen(str);
+ char *end;
+ int retval;
/*
* If the string is of the form <ino>, then treat it as an