summaryrefslogtreecommitdiff
path: root/ext2fs/pager.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext2fs/pager.c')
-rw-r--r--ext2fs/pager.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext2fs/pager.c b/ext2fs/pager.c
index 99dac140..b93a9edd 100644
--- a/ext2fs/pager.c
+++ b/ext2fs/pager.c
@@ -41,6 +41,8 @@ struct pager_requests *file_pager_requests;
pthread_spinlock_t node_to_page_lock = PTHREAD_SPINLOCK_INITIALIZER;
+static int disk_cache_initialized;
+
#ifdef DONT_CACHE_MEMORY_OBJECTS
#define MAY_CACHE 0
@@ -953,6 +955,7 @@ disk_cache_init (void)
assert_backtrace (disk_cache_info[i-fixed_first].block == i);
disk_cache_info[i-fixed_first].flags |= DC_FIXED;
}
+ disk_cache_initialized = 1;
}
static void
@@ -1022,7 +1025,10 @@ disk_cache_block_ref (block_t block)
void *bptr;
hurd_ihash_locp_t slot;
- assert_backtrace (block < store->size >> log2_block_size);
+ /* Trap trying to map superblock, block group descriptor table, or beyond the end */
+ if (disk_cache_initialized)
+ assert_backtrace (block >= group_desc_block_end
+ && block < store->size >> log2_block_size);
ext2_debug ("(%u)", block);