Support very large files with debugfs (first pass).

If a file is created with "dd if=/dev/zero of=<file> bs=1k skip=2047M"
it is created properly by the kernel, but fails to be seen properly
by debugfs - the blocks are not shown by stat <inum>, nor can they
be found by icheck.  This change fixes that.

diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
index 6b14edd..1f69a75 100644
--- a/debugfs/debugfs.c
+++ b/debugfs/debugfs.c
@@ -322,11 +322,11 @@
 }
 
 struct list_blocks_struct {
-	FILE	*f;
-	int	total;
-	blk_t	first_block, last_block;
-	int	first_bcnt, last_bcnt;
-	int	first;
+	FILE		*f;
+	e2_blkcnt_t	total;
+	blk_t		first_block, last_block;
+	e2_blkcnt_t	first_bcnt, last_bcnt;
+	e2_blkcnt_t	first;
 };
 
 static void finish_range(struct list_blocks_struct *lb)
@@ -345,8 +345,9 @@
 	lb->first_block = 0;
 }
 
-static int list_blocks_proc(ext2_filsys fs, blk_t *blocknr, int blockcnt,
-			    void *private)
+static int list_blocks_proc(ext2_filsys fs, blk_t *blocknr,
+			    e2_blkcnt_t blockcnt, blk_t ref_block,
+			    int ref_offset, void *private)
 {
 	struct list_blocks_struct *lb = (struct list_blocks_struct *) private;
 
@@ -397,7 +398,7 @@
 	lb.first_block = 0;
 	lb.f = f;
 	lb.first = 1;
-	ext2fs_block_iterate(current_fs, inode, 0, NULL,
+	ext2fs_block_iterate2(current_fs, inode, 0, NULL,
 			     list_blocks_proc, (void *)&lb);
 	finish_range(&lb);
 	if (lb.total)
diff --git a/debugfs/icheck.c b/debugfs/icheck.c
index 33daa3b..fa065c6 100644
--- a/debugfs/icheck.c
+++ b/debugfs/icheck.c
@@ -25,18 +25,20 @@
 
 struct block_walk_struct {
 	struct block_info	*barray;
-	int			blocks_left;
-	int			num_blocks;
+	e2_blkcnt_t		blocks_left;
+	e2_blkcnt_t		num_blocks;
 	ext2_ino_t		inode;
 };
 
 static int icheck_proc(ext2_filsys fs,
 		       blk_t	*block_nr,
-		       int blockcnt,
+		       e2_blkcnt_t blockcnt,
+		       blk_t ref_block,
+		       int ref_offset,
 		       void *private)
 {
 	struct block_walk_struct *bw = (struct block_walk_struct *) private;
-	int	i;
+	e2_blkcnt_t	i;
 
 	for (i=0; i < bw->num_blocks; i++) {
 		if (bw->barray[i].blk == *block_nr) {
@@ -84,7 +86,7 @@
 	}
 
 	for (i=1; i < argc; i++) {
-		bw.barray[i-1].blk = strtol(argv[i], &tmp, 0);
+		bw.barray[i-1].blk = strtoul(argv[i], &tmp, 0);
 		if (*tmp) {
 			com_err(argv[0], 0, "Bad block - %s", argv[i]);
 			return;
@@ -120,12 +122,12 @@
 			goto next;
 
 		bw.inode = ino;
-		
-		retval = ext2fs_block_iterate(current_fs, ino, 0, block_buf,
-					      icheck_proc, &bw);
+
+		retval = ext2fs_block_iterate2(current_fs, ino, 0, block_buf,
+					       icheck_proc, &bw);
 		if (retval) {
 			com_err("icheck", retval,
-				"while calling ext2_block_iterate");
+				"while calling ext2fs_block_iterate");
 			goto next;
 		}
 
diff --git a/debugfs/lsdel.c b/debugfs/lsdel.c
index 0165676..6100434 100644
--- a/debugfs/lsdel.c
+++ b/debugfs/lsdel.c
@@ -130,7 +130,7 @@
 					      lsdel_proc, &lsd);
 		if (retval) {
 			com_err("ls_deleted_inodes", retval,
-				"while calling ext2_block_iterate");
+				"while calling ext2fs_block_iterate");
 			goto next;
 		}
 		if (lsd.free_blocks && !lsd.bad_blocks) {