summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5HFiblock.c3
-rw-r--r--src/H5HFstat.c7
-rw-r--r--tools/h5stat/h5stat_gentest.c2
-rw-r--r--tools/h5stat/testfiles/h5stat_newgrat.ddl20
-rw-r--r--tools/h5stat/testfiles/h5stat_newgrat.h5bin72236 -> 6363055 bytes
5 files changed, 18 insertions, 14 deletions
diff --git a/src/H5HFiblock.c b/src/H5HFiblock.c
index 70133aa..2ea8b5d 100644
--- a/src/H5HFiblock.c
+++ b/src/H5HFiblock.c
@@ -1624,7 +1624,8 @@ H5HF_man_iblock_size(H5F_t *f, hid_t dxpl_id, H5HF_hdr_t *hdr, haddr_t iblock_ad
entry = hdr->man_dtable.max_direct_rows * hdr->man_dtable.cparam.width;
first_row_bits = H5V_log2_of2((uint32_t)hdr->man_dtable.cparam.start_block_size) +
H5V_log2_of2(hdr->man_dtable.cparam.width);
- num_indirect_rows = (H5V_log2_gen(hdr->man_dtable.row_block_size[u]) - first_row_bits) + 1;
+ num_indirect_rows =
+ (H5V_log2_gen(hdr->man_dtable.row_block_size[hdr->man_dtable.max_direct_rows]) - first_row_bits) + 1;
for(u = hdr->man_dtable.max_direct_rows; u < iblock->nrows; u++, num_indirect_rows++) {
size_t v; /* Local index variable */
diff --git a/src/H5HFstat.c b/src/H5HFstat.c
index 2e3e189..015bd42 100644
--- a/src/H5HFstat.c
+++ b/src/H5HFstat.c
@@ -128,6 +128,7 @@ H5HF_size(const H5HF_t *fh, hid_t dxpl_id, hsize_t *heap_size)
{
H5HF_hdr_t *hdr; /* Fractal heap header */
herr_t ret_value = SUCCEED; /* Return value */
+ hsize_t meta_size = 0; /* free space storage size */
FUNC_ENTER_NOAPI(H5HF_size, FAIL)
@@ -172,9 +173,11 @@ H5HF_size(const H5HF_t *fh, hid_t dxpl_id, hsize_t *heap_size)
} /* end if */
/* Get storage for free-space tracking info */
- if(H5F_addr_defined(hdr->fs_addr))
- if(H5HF_space_size(hdr, dxpl_id, heap_size) < 0)
+ if(H5F_addr_defined(hdr->fs_addr)) {
+ if(H5HF_space_size(hdr, dxpl_id, &meta_size) < 0)
HGOTO_ERROR(H5E_FSPACE, H5E_CANTGET, FAIL, "can't retrieve FS meta storage info")
+ *heap_size += meta_size;
+ }
done:
FUNC_LEAVE_NOAPI(ret_value)
diff --git a/tools/h5stat/h5stat_gentest.c b/tools/h5stat/h5stat_gentest.c
index 28d20ce..ef644d8 100644
--- a/tools/h5stat/h5stat_gentest.c
+++ b/tools/h5stat/h5stat_gentest.c
@@ -29,7 +29,7 @@
#define DATASET_NAME "DATASET_NAME"
#define GROUP_NAME "GROUP"
#define ATTR_NAME "ATTR"
-#define NUM_GRPS 350
+#define NUM_GRPS 35000
#define NUM_ATTRS 100
/*
diff --git a/tools/h5stat/testfiles/h5stat_newgrat.ddl b/tools/h5stat/testfiles/h5stat_newgrat.ddl
index 6881ca9..d704f00 100644
--- a/tools/h5stat/testfiles/h5stat_newgrat.ddl
+++ b/tools/h5stat/testfiles/h5stat_newgrat.ddl
@@ -3,20 +3,20 @@ Expected output for 'h5stat h5stat_newgrat.h5'
#############################
Filename: h5stat_newgrat.h5
File information
- # of unique groups: 351
+ # of unique groups: 35001
# of unique datasets: 1
# of unique named dataypes: 0
# of unique links: 0
# of unique other: 0
Max. # of links to object: 1
- Max. # of objects in group: 351
+ Max. # of objects in group: 35001
Object header size: (total/unused)
- Groups: 51597/32292
+ Groups: 5145147/3220092
Datasets: 414/312
Storage information:
Groups:
- B-tree/List: 5158
- Heap: 7643
+ B-tree/List: 470054
+ Heap: 739128
Attributes:
B-tree/List: 2598
Heap: 4442
@@ -28,12 +28,12 @@ Storage information:
Heap: 0
Superblock extension: 0
Small groups:
- # of groups of size 0: 350
- Total # of small groups: 350
+ # of groups of size 0: 35000
+ Total # of small groups: 35000
Group bins:
- # of groups of size 0: 350
- # of groups of size 100 - 999: 1
- Total # of groups: 351
+ # of groups of size 0: 35000
+ # of groups of size 10000 - 99999: 1
+ Total # of groups: 35001
Dataset dimension information:
Max. rank of datasets: 0
Dataset ranks:
diff --git a/tools/h5stat/testfiles/h5stat_newgrat.h5 b/tools/h5stat/testfiles/h5stat_newgrat.h5
index cab98bb..8083122 100644
--- a/tools/h5stat/testfiles/h5stat_newgrat.h5
+++ b/tools/h5stat/testfiles/h5stat_newgrat.h5
Binary files differ