2007-04-10 18:45:53

by Eric Sandeen

[permalink] [raw]
Subject: [PATCH] e2fsprogs - handle large setb/testb/freeb commands in debugfs

I noticed that you can't give more than a 2^31 block count to the
debugfs commands setb, clearb, or freeb. Looks ok?

Signed-off-by: Eric Sandeen <[email protected]>

Index: e2fsprogs-1.39_ext4_hg/debugfs/debugfs.c
===================================================================
--- e2fsprogs-1.39_ext4_hg.orig/debugfs/debugfs.c
+++ e2fsprogs-1.39_ext4_hg/debugfs/debugfs.c
@@ -726,7 +726,7 @@ void do_testi(int argc, char *argv[])
void do_freeb(int argc, char *argv[])
{
blk_t block;
- int count = 1;
+ blk_t count = 1;

if (common_block_args_process(argc, argv, &block, &count))
return;
@@ -745,7 +745,7 @@ void do_freeb(int argc, char *argv[])
void do_setb(int argc, char *argv[])
{
blk_t block;
- int count = 1;
+ blk_t count = 1;

if (common_block_args_process(argc, argv, &block, &count))
return;
@@ -764,7 +764,7 @@ void do_setb(int argc, char *argv[])
void do_testb(int argc, char *argv[])
{
blk_t block;
- int count = 1;
+ blk_t count = 1;

if (common_block_args_process(argc, argv, &block, &count))
return;
Index: e2fsprogs-1.39_ext4_hg/debugfs/util.c
===================================================================
--- e2fsprogs-1.39_ext4_hg.orig/debugfs/util.c
+++ e2fsprogs-1.39_ext4_hg/debugfs/util.c
@@ -325,7 +325,7 @@ int common_inode_args_process(int argc,
* This is a helper function used by do_freeb, do_setb, and do_testb
*/
int common_block_args_process(int argc, char *argv[],
- blk_t *block, int *count)
+ blk_t *block, blk_t *count)
{
int err;

Index: e2fsprogs-1.39_ext4_hg/debugfs/debugfs.h
===================================================================
--- e2fsprogs-1.39_ext4_hg.orig/debugfs/debugfs.h
+++ e2fsprogs-1.39_ext4_hg/debugfs/debugfs.h
@@ -41,7 +41,7 @@ extern int common_args_process(int argc,
extern int common_inode_args_process(int argc, char *argv[],
ext2_ino_t *inode, int flags);
extern int common_block_args_process(int argc, char *argv[],
- blk_t *block, int *count);
+ blk_t *block, blk_t *count);
extern int debugfs_read_inode(ext2_ino_t ino, struct ext2_inode * inode,
const char *cmd);
extern int debugfs_read_inode_full(ext2_ino_t ino, struct ext2_inode * inode,


2007-04-10 19:40:32

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] e2fsprogs - handle large setb/testb/freeb commands in debugfs

On Tue, Apr 10, 2007 at 01:43:33PM -0500, Eric Sandeen wrote:
> I noticed that you can't give more than a 2^31 block count to the
> debugfs commands setb, clearb, or freeb. Looks ok?

Yup, thanks. Committed into the repository.

- Ted