diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2021-03-04 22:06:47 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-04 22:06:47 (GMT) |
commit | 583e9d5c323996ffdcf9534302e865d30f871da4 (patch) | |
tree | 9b1188a9b1784b488aa105748505aeba9f405177 /src/H5MF.c | |
parent | 7b23ce1686cf3383bb8666f133cf5fa4f6282096 (diff) | |
download | hdf5-583e9d5c323996ffdcf9534302e865d30f871da4.zip hdf5-583e9d5c323996ffdcf9534302e865d30f871da4.tar.gz hdf5-583e9d5c323996ffdcf9534302e865d30f871da4.tar.bz2 |
1 10 Merges from develop (#424)
* HDFFV-10865 - merge from dev, HDFArray perf fix.
* Remove duplicate setting
* Whitespace changes after clang format
* Undo version 11 clang format changes
* Merge CMake changes from develop
* test testing script merge from develop
* Update supported platforms
* PR#3 merge from develop
* Merge gcc 10 diagnostics option from develop
* Merge #318 OSX changes from develop
* Merge small changes from develop
* Minor non-space formatting changes
* #386 copyright corrections for java folder
* Merges from develop
#358 patches from vtk
#361 fix header guard spelling
* Merge updates
#358 patches from vtk
#361 fix header guard spelling
* format fix
* Fix missing underscore and make H5public.h closer to dev
* Merges from develop
#340 clang -Wformat-security warnings
#360 Fixed uninitialized warnings
header guard underscore cleanup
JNI cleanup
* format alignment
* Add missing test ref file
Diffstat (limited to 'src/H5MF.c')
-rw-r--r-- | src/H5MF.c | 416 |
1 files changed, 208 insertions, 208 deletions
@@ -26,20 +26,20 @@ /* Module Setup */ /****************/ -#define H5F_FRIEND /*suppress error about including H5Fpkg */ -#define H5FS_FRIEND /*suppress error about including H5Fpkg */ +#define H5F_FRIEND /*suppress error about including H5Fpkg */ +#define H5FS_FRIEND /*suppress error about including H5Fpkg */ #include "H5MFmodule.h" /* This source code file is part of the H5MF module */ /***********/ /* Headers */ /***********/ -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5Fpkg.h" /* File access */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Fpkg.h" /* File access */ #include "H5FSpkg.h" /* File free space */ -#include "H5Iprivate.h" /* IDs */ -#include "H5MFpkg.h" /* File memory management */ -#include "H5VMprivate.h" /* Vectors and arrays */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MFpkg.h" /* File memory management */ +#include "H5VMprivate.h" /* Vectors and arrays */ /****************/ /* Local Macros */ @@ -122,7 +122,7 @@ hbool_t H5_PKG_INIT_VAR = FALSE; * Purpose: Initialize the free space section+aggregator merge flags * for the file. * - * Return: SUCCEED/FAIL + * Return: SUCCEED/FAIL * * Programmer: Quincey Koziol * Friday, February 1, 2008 @@ -274,17 +274,17 @@ H5MF__alloc_to_fs_type(H5F_t *f, H5FD_mem_t alloc_type, hsize_t size, H5F_mem_pa } /* end H5MF__alloc_to_fs_type() */ /*------------------------------------------------------------------------- - * Function: H5MF__open_fstype + * Function: H5MF__open_fstype * - * Purpose: Open an existing free space manager of TYPE for file by + * Purpose: Open an existing free space manager of TYPE for file by * creating a free-space structure. * Note that TYPE can be H5F_mem_page_t or H5FD_mem_t enum types. * - * Return: Success: non-negative - * Failure: negative + * Return: Success: non-negative + * Failure: negative * - * Programmer: Quincey Koziol - * Jan 8 2008 + * Programmer: Quincey Koziol + * Jan 8 2008 * *------------------------------------------------------------------------- */ @@ -351,17 +351,17 @@ done: } /* end H5MF__open_fstype() */ /*------------------------------------------------------------------------- - * Function: H5MF__create_fstype + * Function: H5MF__create_fstype * - * Purpose: Create free space manager of TYPE for the file by creating + * Purpose: Create free space manager of TYPE for the file by creating * a free-space structure * Note that TYPE can be H5F_mem_page_t or H5FD_mem_t enum types. * - * Return: Success: non-negative - * Failure: negative + * Return: Success: non-negative + * Failure: negative * - * Programmer: Quincey Koziol - * Jan 8 2008 + * Programmer: Quincey Koziol + * Jan 8 2008 * *------------------------------------------------------------------------- */ @@ -435,16 +435,16 @@ done: } /* end H5MF__create_fstype() */ /*------------------------------------------------------------------------- - * Function: H5MF__start_fstype + * Function: H5MF__start_fstype * - * Purpose: Open or create a free space manager of a given TYPE. + * Purpose: Open or create a free space manager of a given TYPE. * Note that TYPE can be H5F_mem_page_t or H5FD_mem_t enum types. * - * Return: Success: non-negative - * Failure: negative + * Return: Success: non-negative + * Failure: negative * - * Programmer: Quincey Koziol - * Jan 8 2008 + * Programmer: Quincey Koziol + * Jan 8 2008 * *------------------------------------------------------------------------- */ @@ -492,7 +492,7 @@ done: * Return: Success: non-negative * Failure: negative * - * Programmer: Vailin Choi; April 2013 + * Programmer: Vailin Choi; April 2013 * *------------------------------------------------------------------------- */ @@ -603,7 +603,7 @@ done: /*------------------------------------------------------------------------- * Function: H5MF__add_sect * - * Purpose: To add a section to the specified free-space manager. + * Purpose: To add a section to the specified free-space manager. * * Return: Success: non-negative * Failure: negative @@ -661,11 +661,11 @@ done: /*------------------------------------------------------------------------- * Function: H5MF__find_sect * - * Purpose: To find a section from the specified free-space manager to fulfill the request. - * If found, re-add the left-over space back to the manager. + * Purpose: To find a section from the specified free-space manager to fulfill the request. + * If found, re-add the left-over space back to the manager. * - * Return: TRUE if a section is found to fulfill the request - * FALSE if not + * Return: TRUE if a section is found to fulfill the request + * FALSE if not * * Programmer: Vailin Choi; April 2013 * @@ -745,9 +745,9 @@ done: * Function: H5MF_alloc * * Purpose: Allocate SIZE bytes of file memory and return the relative - * address where that contiguous chunk of file memory exists. - * The TYPE argument describes the purpose for which the storage - * is being requested. + * address where that contiguous chunk of file memory exists. + * The TYPE argument describes the purpose for which the storage + * is being requested. * * Return: Success: The file address of new chunk. * Failure: HADDR_UNDEF @@ -1002,15 +1002,15 @@ done: * * Purpose: Allocate temporary space in the file * - * Note: The address returned is non-overlapping with any other address - * in the file and suitable for insertion into the metadata - * cache. + * Note: The address returned is non-overlapping with any other address + * in the file and suitable for insertion into the metadata + * cache. * - * The address is _not_ suitable for actual file I/O and will - * cause an error if it is so used. + * The address is _not_ suitable for actual file I/O and will + * cause an error if it is so used. * - * The space allocated with this routine should _not_ be freed, - * it should just be abandoned. Calling H5MF_xfree() with space + * The space allocated with this routine should _not_ be freed, + * it should just be abandoned. Calling H5MF_xfree() with space * from this routine will cause an error. * * Return: Success: Temporary file address @@ -1244,9 +1244,9 @@ done: } /* end H5MF_xfree() */ /*------------------------------------------------------------------------- - * Function: H5MF_try_extend + * Function: H5MF_try_extend * - * Purpose: Extend a block in the file if possible. + * Purpose: Extend a block in the file if possible. * For non-paged aggregation: * --try to extend at EOA * --try to extend into the aggregators @@ -1256,11 +1256,11 @@ done: * --try to extend into a free-space section if adjoined * --try to extend into the page end threshold if a metadata block * - * Return: Success: TRUE(1) - Block was extended + * Return: Success: TRUE(1) - Block was extended * FALSE(0) - Block could not be extended - * Failure: FAIL + * Failure: FAIL * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Friday, June 11, 2004 * *------------------------------------------------------------------------- @@ -1528,7 +1528,7 @@ done: * Purpose: Close the free space tracker(s) for a file: * paged or non-paged aggregation * - * Return: SUCCEED/FAIL + * Return: SUCCEED/FAIL * * Programmer: Vailin Choi; Dec 2012 * @@ -1571,9 +1571,9 @@ done: * of TYPE for file. * Note that TYPE can be H5F_mem_page_t or H5FD_mem_t enum types. * - * Return: SUCCEED/FAIL + * Return: SUCCEED/FAIL * - * Programmer: Vailin Choi + * Programmer: Vailin Choi * Jan 2016 * *------------------------------------------------------------------------- @@ -1630,9 +1630,9 @@ done: * free-space managers when downgrading persistent free-space * to non-persistent. * - * Return: SUCCEED/FAIL + * Return: SUCCEED/FAIL * - * Programmer: Vailin Choi + * Programmer: Vailin Choi * Jan 2016 * *------------------------------------------------------------------------- @@ -2087,7 +2087,7 @@ done: * * Purpose: Shrink the EOA while closing * - * Return: SUCCEED/FAIL + * Return: SUCCEED/FAIL * * Programmer: Quincey Koziol * Saturday, July 7, 2012 @@ -2338,7 +2338,7 @@ done: /*------------------------------------------------------------------------- * Function: H5MF_get_free_sections() * - * Purpose: To retrieve free-space section information for + * Purpose: To retrieve free-space section information for * paged or non-paged aggregation * * Return: Success: Number of free sections @@ -2468,10 +2468,10 @@ done: /*------------------------------------------------------------------------- * Function: H5MF__sects_cb() * - * Purpose: Iterator callback for each free-space section + * Purpose: Iterator callback for each free-space section * Retrieve address and size into user data * - * Return: Always succeed + * Return: Always succeed * * Programmer: Vailin Choi * July 1st, 2009 @@ -2498,7 +2498,7 @@ H5MF__sects_cb(H5FS_section_info_t *_sect, void *_udata) /*------------------------------------------------------------------------- * Function: H5MF__get_free_sects * - * Purpose: Retrieve section information for the specified free-space manager. + * Purpose: Retrieve section information for the specified free-space manager. * * Return: Success: non-negative * Failure: negative @@ -2539,10 +2539,10 @@ done: /*------------------------------------------------------------------------- * Function: H5MF_settle_raw_data_fsm() * - * Purpose: Handle any tasks required before the metadata cache - * can serialize or flush the raw data free space manager - * and any metadata free space managers that reside in the - * raw data free space manager ring. + * Purpose: Handle any tasks required before the metadata cache + * can serialize or flush the raw data free space manager + * and any metadata free space managers that reside in the + * raw data free space manager ring. * * Specifically, this means any metadata managers that DON'T * handle space allocation for free space manager header or @@ -2550,25 +2550,25 @@ done: * ring. * * In the absence of page allocation, there is at most one - * free space manager per memory type defined in H5F_mem_t. - * Of these, the one that allocates H5FD_MEM_DRAW will - * always reside in the raw data free space manager ring. - * If there is more than one metadata free space manager, - * all that don't handle H5FD_MEM_FSPACE_HDR or + * free space manager per memory type defined in H5F_mem_t. + * Of these, the one that allocates H5FD_MEM_DRAW will + * always reside in the raw data free space manager ring. + * If there is more than one metadata free space manager, + * all that don't handle H5FD_MEM_FSPACE_HDR or * H5FD_MEM_FSPACE_SINFO (which map to H5FD_MEM_OHDR and * H5FD_MEM_LHEAP respectively) will reside in the raw - * data free space manager ring as well + * data free space manager ring as well * - * With page allocation, the situation is conceptually - * identical, but more complex in practice. + * With page allocation, the situation is conceptually + * identical, but more complex in practice. * * In the worst case (multi file driver) page allocation - * can result in two free space managers for each memory - * type -- one for small (less than on equal to one page) + * can result in two free space managers for each memory + * type -- one for small (less than on equal to one page) * allocations, and one for large (greater than one page) * allocations. * - * In the more common one file case, page allocation will + * In the more common one file case, page allocation will * result in a total of three free space managers -- one for * small (<= one page) raw data allocations, one for small * metadata allocations (i.e, all memory types other than @@ -2576,64 +2576,64 @@ done: * allocations. * * Despite these complications, the solution is the same in - * the page allocation case -- free space managers (be they + * the page allocation case -- free space managers (be they * small data or large) are assigned to the raw data free * space manager ring if they don't allocate file space for * free space managers. Note that in the one file case, the - * large free space manager must be assigned to the metadata - * free space manager ring, as it both allocates pages for - * the metadata free space manager, and allocates space for - * large (> 1 page) metadata cache entries. + * large free space manager must be assigned to the metadata + * free space manager ring, as it both allocates pages for + * the metadata free space manager, and allocates space for + * large (> 1 page) metadata cache entries. * * At present, the task list for this routine is: * - * 1) Reduce the EOA to the extent possible. To do this: + * 1) Reduce the EOA to the extent possible. To do this: * - * a) Free both aggregators. Space not at EOA will be - * added to the appropriate free space manager. + * a) Free both aggregators. Space not at EOA will be + * added to the appropriate free space manager. * - * The raw data aggregator should not be restarted - * after this point. It is possible that the metadata - * aggregator will be. + * The raw data aggregator should not be restarted + * after this point. It is possible that the metadata + * aggregator will be. * - * b) Free all file space currently allocated to free - * space managers. + * b) Free all file space currently allocated to free + * space managers. * - * c) Delete the free space manager superblock - * extension message if allocated. + * c) Delete the free space manager superblock + * extension message if allocated. * - * This done, reduce the EOA by moving it to just before - * the last piece of free memory in the file. + * This done, reduce the EOA by moving it to just before + * the last piece of free memory in the file. * - * 2) Ensure that space is allocated for the free space + * 2) Ensure that space is allocated for the free space * manager superblock extension message. Must do this * now, before reallocating file space for free space - * managers, as it is possible that this allocation may - * grab the last section in a FSM -- making it unnecessary - * to re-allocate file space for it. - * - * 3) Scan all free space managers not involved in allocating - * space for free space managers. For each such free space - * manager, test to see if it contains free space. If - * it does, allocate file space for its header and section - * data. If it contains no free space, leave it without - * allocated file space as there is no need to save it to - * file. - * - * Note that all free space managers in this class should - * see no further space allocations / deallocations as - * at this point, all raw data allocations should be - * finalized, as should all metadata allocations not - * involving free space managers. - * - * We will allocate space for free space managers involved - * in the allocation of file space for free space managers - * in H5MF_settle_meta_data_fsm() - * - * Return: SUCCEED/FAIL + * managers, as it is possible that this allocation may + * grab the last section in a FSM -- making it unnecessary + * to re-allocate file space for it. + * + * 3) Scan all free space managers not involved in allocating + * space for free space managers. For each such free space + * manager, test to see if it contains free space. If + * it does, allocate file space for its header and section + * data. If it contains no free space, leave it without + * allocated file space as there is no need to save it to + * file. + * + * Note that all free space managers in this class should + * see no further space allocations / deallocations as + * at this point, all raw data allocations should be + * finalized, as should all metadata allocations not + * involving free space managers. + * + * We will allocate space for free space managers involved + * in the allocation of file space for free space managers + * in H5MF_settle_meta_data_fsm() + * + * Return: SUCCEED/FAIL * * Programmer: John Mainzer - * 5/25/16 + * 5/25/16 * *------------------------------------------------------------------------- */ @@ -3012,122 +3012,122 @@ done: /*------------------------------------------------------------------------- * Function: H5MF_settle_meta_data_fsm() * - * Purpose: If the free space manager is persistent, handle any tasks - * required before the metadata cache can serialize or flush - * the metadata free space manager(s) that handle file space - * allocation for free space managers. + * Purpose: If the free space manager is persistent, handle any tasks + * required before the metadata cache can serialize or flush + * the metadata free space manager(s) that handle file space + * allocation for free space managers. * - * In most cases, there will be only one manager assigned - * to this role. However, since for reasons unknown, - * free space manager headers and section info blocks are - * different classes of memory, it is possible that two free - * space managers will be involved. + * In most cases, there will be only one manager assigned + * to this role. However, since for reasons unknown, + * free space manager headers and section info blocks are + * different classes of memory, it is possible that two free + * space managers will be involved. * - * On entry to this function, the raw data settle routine - * (H5MF_settle_raw_data_fsm()) should have: + * On entry to this function, the raw data settle routine + * (H5MF_settle_raw_data_fsm()) should have: * - * 1) Freed the aggregators. + * 1) Freed the aggregators. * - * 2) Freed all file space allocated to the free space managers. + * 2) Freed all file space allocated to the free space managers. * - * 3) Deleted the free space manager superblock extension message + * 3) Deleted the free space manager superblock extension message * - * 4) Reduced the EOA to the extent possible. + * 4) Reduced the EOA to the extent possible. * - * 5) Re-created the free space manager superblock extension - * message. + * 5) Re-created the free space manager superblock extension + * message. * - * 6) Reallocated file space for all non-empty free space - * managers NOT involved in allocation of space for free - * space managers. + * 6) Reallocated file space for all non-empty free space + * managers NOT involved in allocation of space for free + * space managers. * - * Note that these free space managers (if not empty) should - * have been written to file by this point, and that no - * further space allocations involving them should take - * place during file close. + * Note that these free space managers (if not empty) should + * have been written to file by this point, and that no + * further space allocations involving them should take + * place during file close. * - * On entry to this routine, the free space manager(s) involved - * in allocation of file space for free space managers should - * still be floating. (i.e. should not have any file space - * allocated to them.) + * On entry to this routine, the free space manager(s) involved + * in allocation of file space for free space managers should + * still be floating. (i.e. should not have any file space + * allocated to them.) * - * Similarly, the raw data aggregator should not have been - * restarted. Note that it is probable that reallocation of - * space in 5) and 6) above will have re-started the metadata - * aggregator. + * Similarly, the raw data aggregator should not have been + * restarted. Note that it is probable that reallocation of + * space in 5) and 6) above will have re-started the metadata + * aggregator. * * - * In this routine, we proceed as follows: + * In this routine, we proceed as follows: * - * 1) Verify that the free space manager(s) involved in file - * space allocation for free space managers are still floating. + * 1) Verify that the free space manager(s) involved in file + * space allocation for free space managers are still floating. * - * 2) Free the aggregators. + * 2) Free the aggregators. * - * 3) Reduce the EOA to the extent possible, and make note - * of the resulting value. This value will be stored - * in the fsinfo superblock extension message and be used - * in the subsequent file open. + * 3) Reduce the EOA to the extent possible, and make note + * of the resulting value. This value will be stored + * in the fsinfo superblock extension message and be used + * in the subsequent file open. * - * 4) Re-allocate space for any free space manager(s) that: + * 4) Re-allocate space for any free space manager(s) that: * - * a) are involved in allocation of space for free space - * managers, and + * a) are involved in allocation of space for free space + * managers, and * - * b) contain free space. + * b) contain free space. * - * It is possible that we could allocate space for one - * of these free space manager(s) only to have the allocation - * result in the free space manager being empty and thus - * obliging us to free the space again. Thus there is the - * potential for an infinite loop if we want to avoid saving - * empty free space managers. + * It is possible that we could allocate space for one + * of these free space manager(s) only to have the allocation + * result in the free space manager being empty and thus + * obliging us to free the space again. Thus there is the + * potential for an infinite loop if we want to avoid saving + * empty free space managers. * - * Similarly, it is possible that we could allocate space - * for a section info block, only to discover that this - * allocation has changed the size of the section info -- - * forcing us to deallocate and start the loop over again. + * Similarly, it is possible that we could allocate space + * for a section info block, only to discover that this + * allocation has changed the size of the section info -- + * forcing us to deallocate and start the loop over again. * - * To avoid this, simply allocate file space for these - * FSM(s) directly from the VFD layer if allocation is - * indicated. This avoids the issue by bypassing the FSMs - * in this case. + * To avoid this, simply allocate file space for these + * FSM(s) directly from the VFD layer if allocation is + * indicated. This avoids the issue by bypassing the FSMs + * in this case. * - * Note that this may increase the size of the file needlessly. - * A better solution would be to modify the FSM code to - * save empty FSMs to file, and to allow section info blocks - * to be oversized. However, given that the FSM code is - * also used by the fractal heaps, and that we are under - * severe time pressure at the moment, the above brute - * force solution is attractive. + * Note that this may increase the size of the file needlessly. + * A better solution would be to modify the FSM code to + * save empty FSMs to file, and to allow section info blocks + * to be oversized. However, given that the FSM code is + * also used by the fractal heaps, and that we are under + * severe time pressure at the moment, the above brute + * force solution is attractive. * - * 5) Make note of the EOA -- used for sanity checking on - * FSM shutdown. + * 5) Make note of the EOA -- used for sanity checking on + * FSM shutdown. * - * Return: SUCCEED/FAIL + * Return: SUCCEED/FAIL * * Programmer: John Mainzer - * 5/25/16 + * 5/25/16 * *------------------------------------------------------------------------- */ herr_t H5MF_settle_meta_data_fsm(H5F_t *f, hbool_t *fsm_settled) { - H5F_mem_page_t sm_fshdr_fs_type; /* small fs hdr fsm */ - H5F_mem_page_t sm_fssinfo_fs_type; /* small fs sinfo fsm */ - H5F_mem_page_t lg_fshdr_fs_type; /* large fs hdr fsm */ - H5F_mem_page_t lg_fssinfo_fs_type; /* large fs sinfo fsm */ - H5FS_t * sm_hdr_fspace = NULL; /* ptr to sm FSM hdr alloc FSM */ - H5FS_t * sm_sinfo_fspace = NULL; /* ptr to sm FSM sinfo alloc FSM */ - H5FS_t * lg_hdr_fspace = NULL; /* ptr to lg FSM hdr alloc FSM */ - H5FS_t * lg_sinfo_fspace = NULL; /* ptr to lg FSM sinfo alloc FSM */ - haddr_t eoa_pre_fsm_fsalloc; /* eoa pre file space allocation */ - /* for self referential FSMs */ - haddr_t eoa_post_fsm_fsalloc; /* eoa post file space allocation */ - /* for self referential FSMs */ - H5AC_ring_t orig_ring = H5AC_RING_INV; /* Original ring value */ - herr_t ret_value = SUCCEED; /* Return value */ + H5F_mem_page_t sm_fshdr_fs_type; /* small fs hdr fsm */ + H5F_mem_page_t sm_fssinfo_fs_type; /* small fs sinfo fsm */ + H5F_mem_page_t lg_fshdr_fs_type = H5F_MEM_PAGE_DEFAULT; /* large fs hdr fsm */ + H5F_mem_page_t lg_fssinfo_fs_type = H5F_MEM_PAGE_DEFAULT; /* large fs sinfo fsm */ + H5FS_t * sm_hdr_fspace = NULL; /* ptr to sm FSM hdr alloc FSM */ + H5FS_t * sm_sinfo_fspace = NULL; /* ptr to sm FSM sinfo alloc FSM */ + H5FS_t * lg_hdr_fspace = NULL; /* ptr to lg FSM hdr alloc FSM */ + H5FS_t * lg_sinfo_fspace = NULL; /* ptr to lg FSM sinfo alloc FSM */ + haddr_t eoa_pre_fsm_fsalloc; /* eoa pre file space allocation */ + /* for self referential FSMs */ + haddr_t eoa_post_fsm_fsalloc; /* eoa post file space allocation */ + /* for self referential FSMs */ + H5AC_ring_t orig_ring = H5AC_RING_INV; /* Original ring value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_TAG(H5AC__FREESPACE_TAG, FAIL) @@ -3393,7 +3393,7 @@ done: * Function: H5MF__fsm_type_is_self_referential() * * Purpose: Return TRUE if the indicated free space manager allocates - * file space for free space managers. Return FALSE otherwise. + * file space for free space managers. Return FALSE otherwise. * * Return: TRUE/FALSE * @@ -3449,7 +3449,7 @@ H5MF__fsm_type_is_self_referential(H5F_t *f, H5F_mem_page_t fsm_type) * Function: H5MF__fsm_is_self_referential() * * Purpose: Return TRUE if the indicated free space manager allocates - * file space for free space managers. Return FALSE otherwise. + * file space for free space managers. Return FALSE otherwise. * * Return: TRUE/FALSE * @@ -3496,15 +3496,15 @@ H5MF__fsm_is_self_referential(H5F_t *f, H5FS_t *fspace) * Function: H5MF_tidy_self_referential_fsm_hack * * Purpose: As discussed in the comments of the settle routines above, - * the existence of self referential free space managers - * as currently implemented creates the possibility of - * infinite loops at file close. + * the existence of self referential free space managers + * as currently implemented creates the possibility of + * infinite loops at file close. * - * As a hack to avoid this, we have added code to settle - * self referential free space managers, and then allocate - * space for them directly from the file driver. + * As a hack to avoid this, we have added code to settle + * self referential free space managers, and then allocate + * space for them directly from the file driver. * - * To avoid dropping ever increasing amounts of file space + * To avoid dropping ever increasing amounts of file space * on the floor with each subsequent file close/open cycle, * we need to clean this up on file open. To avoid this, * this function is called on the first file space allocation @@ -3541,7 +3541,7 @@ H5MF__fsm_is_self_referential(H5F_t *f, H5FS_t *fspace) * and then set f->shared->eoa_pre_fsm_fsalloc to * HADDR_UNDEF. * - * If page buffering, verify that the new EOA is + * If page buffering, verify that the new EOA is * on a page boundary, and expunge any pages in the * page buffer after the new EOA. * |