#include "debugfs.h"
-void do_zap_block(int argc, char *argv[])
+void do_zap_block(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+ void *infop EXT2FS_ATTR((unused)))
{
unsigned long pattern = 0;
unsigned char *buf;
return;
}
-void do_block_dump(int argc, char *argv[])
+void do_block_dump(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+ void *infop EXT2FS_ATTR((unused)))
{
unsigned char *buf;
ext2_ino_t inode;
errcode_t errcode;
blk64_t block;
char *file = NULL;
+ int xattr_dump = 0;
int c, err;
if (check_fs_open(argv[0]))
return;
reset_getopt();
- while ((c = getopt (argc, argv, "f:")) != EOF) {
+ while ((c = getopt (argc, argv, "f:x")) != EOF) {
switch (c) {
case 'f':
file = optarg;
break;
-
+ case 'x':
+ xattr_dump = 1;
+ break;
default:
goto print_usage;
}
if (argc != optind + 1) {
print_usage:
- com_err(0, 0, "Usage: block_dump [-f inode] block_num");
+ com_err(0, 0, "Usage: block_dump [-x] [-f inode] block_num");
return;
}
goto errout;
}
- do_byte_hexdump(stdout, buf, current_fs->blocksize);
+ if (xattr_dump)
+ block_xattr_dump(stdout, buf, current_fs->blocksize);
+ else
+ do_byte_hexdump(stdout, buf, current_fs->blocksize);
errout:
free(buf);
}