@@ -574,3 +574,24 @@ const struct xfs_buf_ops xfs_attr3_db_buf_ops = {
.verify_read = xfs_attr3_db_read_verify,
.verify_write = xfs_attr3_db_write_verify,
};
+
+int
+attr_print_func(
+ void *obj,
+ int bit,
+ int count,
+ char *fmtstr,
+ int size,
+ int arg,
+ int base,
+ int array)
+{
+ __be32 magic32;
+ __be16 magic16;
+
+ magic32 = *(__be32 *)obj;
+ magic16 = ((struct xfs_da_blkinfo *)obj)->magic;
+ dbprintf(_("Unknown attribute buffer magic (0x%x:0x%x)!\n"),
+ magic32, magic16);
+ return 0;
+}
@@ -35,3 +35,6 @@ extern int attr_leaf_name_size(void *obj, int startoff, int idx);
extern int attr_size(void *obj, int startoff, int idx);
extern const struct xfs_buf_ops xfs_attr3_db_buf_ops;
+
+extern int attr_print_func(void *obj, int bit, int count, char *fmtstr,
+ int size, int arg, int base, int array);
@@ -1041,3 +1041,24 @@ const struct xfs_buf_ops xfs_dir3_db_buf_ops = {
.verify_read = xfs_dir3_db_read_verify,
.verify_write = xfs_dir3_db_write_verify,
};
+
+int
+dir2_print_func(
+ void *obj,
+ int bit,
+ int count,
+ char *fmtstr,
+ int size,
+ int arg,
+ int base,
+ int array)
+{
+ __be32 magic32;
+ __be16 magic16;
+
+ magic32 = *(__be32 *)obj;
+ magic16 = ((struct xfs_da_blkinfo *)obj)->magic;
+ dbprintf(_("Unknown directory buffer magic (0x%x:0x%x)!\n"),
+ magic32, magic16);
+ return 0;
+}
@@ -62,3 +62,6 @@ extern int dir2_data_union_size(void *obj, int startoff, int idx);
extern int dir2_size(void *obj, int startoff, int idx);
extern const struct xfs_buf_ops xfs_dir3_db_buf_ops;
+
+extern int dir2_print_func(void *obj, int bit, int count, char *fmtstr,
+ int size, int arg, int base, int array);
@@ -59,8 +59,8 @@ const ftattr_t ftattrtab[] = {
FTARG_DONULL, NULL, NULL },
/* attr fields */
- { FLDT_ATTR, "attr", NULL, (char *)attr_flds, attr_size, FTARG_SIZE,
- NULL, attr_flds },
+ { FLDT_ATTR, "attr", attr_print_func, (char *)attr_flds, attr_size,
+ FTARG_SIZE, NULL, attr_flds },
{ FLDT_ATTR_BLKINFO, "attr_blkinfo", NULL, (char *)attr_blkinfo_flds,
SI(bitsz(struct xfs_da_blkinfo)), 0, NULL, attr_blkinfo_flds },
{ FLDT_ATTR_LEAF_ENTRY, "attr_leaf_entry", fp_sarray,
@@ -89,8 +89,8 @@ const ftattr_t ftattrtab[] = {
attrshort_size, FTARG_SIZE, NULL, attr_shortform_flds },
/* attr3 specific fields */
- { FLDT_ATTR3, "attr3", NULL, (char *)attr3_flds, attr_size, FTARG_SIZE,
- NULL, attr3_flds },
+ { FLDT_ATTR3, "attr3", attr_print_func, (char *)attr3_flds, attr_size,
+ FTARG_SIZE, NULL, attr3_flds },
{ FLDT_ATTR3_LEAF_HDR, "attr3_leaf_hdr", NULL,
(char *)attr3_leaf_hdr_flds, SI(bitsz(struct xfs_attr3_leaf_hdr)),
0, NULL, attr3_leaf_hdr_flds },
@@ -219,8 +219,8 @@ const ftattr_t ftattrtab[] = {
SI(bitsz(xfs_dinode_t)), 0, NULL, inode_v3_flds },
/* dir v2 fields */
- { FLDT_DIR2, "dir2", NULL, (char *)dir2_flds, dir2_size, FTARG_SIZE,
- NULL, dir2_flds },
+ { FLDT_DIR2, "dir2", dir2_print_func, (char *)dir2_flds, dir2_size,
+ FTARG_SIZE, NULL, dir2_flds },
{ FLDT_DIR2_BLOCK_TAIL, "dir2_block_tail", NULL,
(char *)dir2_block_tail_flds, SI(bitsz(xfs_dir2_block_tail_t)), 0,
NULL, dir2_block_tail_flds },
@@ -262,8 +262,8 @@ const ftattr_t ftattrtab[] = {
FTARG_SIZE, NULL, dir2sf_flds },
/* dir v3 fields */
- { FLDT_DIR3, "dir3", NULL, (char *)dir3_flds, dir2_size, FTARG_SIZE,
- NULL, dir3_flds },
+ { FLDT_DIR3, "dir3", dir2_print_func, (char *)dir3_flds, dir2_size,
+ FTARG_SIZE, NULL, dir3_flds },
{ FLDT_DIR3_BLKHDR, "dir3_blk_hdr", NULL, (char *)dir3_blkhdr_flds,
SI(bitsz(struct xfs_dir3_blk_hdr)), 0, NULL, dir3_blkhdr_flds },
{ FLDT_DIR3_DATA_HDR, "dir3_data_hdr", NULL, (char *)dir3_data_hdr_flds,