From: short <> Date: Wed, 13 Aug 2003 10:45:53 +0000 (+0000) Subject: *_FileSizes_changed(): It appears it is valid to squeeze out 'dirty' blocks. X-Git-Tag: bp_captive~66 X-Git-Url: http://git.jankratochvil.net/?p=captive.git;a=commitdiff_plain;h=e8bcd39260e3703a633638ca125a6cc35e1dab25 *_FileSizes_changed(): It appears it is valid to squeeze out 'dirty' blocks. Replaced all 'FileSize' sanity checks for more relaxed 'AllocationSize' checks. --- diff --git a/src/libcaptive/cc/sharedcachemap.c b/src/libcaptive/cc/sharedcachemap.c index 44c1dcd..4dbd2da 100644 --- a/src/libcaptive/cc/sharedcachemap.c +++ b/src/libcaptive/cc/sharedcachemap.c @@ -220,6 +220,7 @@ int errint; captive_shared_cache_map_object->buffer=buffer_new; +#if 0 /* It appears it is valid to squeeze out 'dirty' blocks. FIXME: Flush them? */ if (size_old>size_new) { guint64 now; @@ -229,6 +230,7 @@ guint64 now; g_assert(!captive_shared_cache_map_object->pages[now/PAGE_SIZE].dirty); } } +#endif captive_shared_cache_map_object->pages=g_realloc(captive_shared_cache_map_object->pages, size_new/PAGE_SIZE*sizeof(*captive_shared_cache_map_object->pages)); if (size_new>size_old) /* prevent 'size_new-size_old' as it is unsigned! */ @@ -391,7 +393,7 @@ gboolean after_eof=FALSE; /* Did we reached the end of file already? */ g_return_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object)); g_return_if_fail(captive_shared_cache_map_object==captive_FileObject_to_SharedCacheMap(FileObject)); g_return_if_fail(start<=end); - g_return_if_fail(end<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->FileSize,PAGE_SIZE)); + g_return_if_fail(end<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->AllocationSize,PAGE_SIZE)); start=CAPTIVE_ROUND_DOWN64(start,PAGE_SIZE); end=CAPTIVE_ROUND_UP64(end,PAGE_SIZE); @@ -420,7 +422,7 @@ guint64 now; g_return_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object)); g_return_if_fail(start<=end); - g_return_if_fail(end<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->FileSize,PAGE_SIZE)); + g_return_if_fail(end<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->AllocationSize,PAGE_SIZE)); start=CAPTIVE_ROUND_DOWN64(start,PAGE_SIZE); end=CAPTIVE_ROUND_UP64(end,PAGE_SIZE); @@ -437,7 +439,7 @@ guint64 now; g_return_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object)); g_return_if_fail(start<=end); - g_return_if_fail(end<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->FileSize,PAGE_SIZE)); + g_return_if_fail(end<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->AllocationSize,PAGE_SIZE)); start=CAPTIVE_ROUND_DOWN64(start,PAGE_SIZE); end=CAPTIVE_ROUND_UP64(end,PAGE_SIZE); @@ -454,7 +456,7 @@ guint64 now; CaptiveSharedCacheMapObject_page *page; g_return_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object)); - g_return_if_fail(end<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->FileSize,PAGE_SIZE)); + g_return_if_fail(end<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->AllocationSize,PAGE_SIZE)); start=CAPTIVE_ROUND_DOWN64(start,PAGE_SIZE); end=CAPTIVE_ROUND_UP64(end,PAGE_SIZE); @@ -476,7 +478,7 @@ gboolean captive_shared_cache_map_is_page_dirty(CaptiveSharedCacheMapObject *cap CaptiveSharedCacheMapObject_page *page; g_return_val_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object),FALSE); - g_return_val_if_fail(offsetFileSize,PAGE_SIZE),FALSE); + g_return_val_if_fail(offsetAllocationSize,PAGE_SIZE),FALSE); g_return_val_if_fail(0==CAPTIVE_ROUND_DOWN_EXCEEDING64(offset,PAGE_SIZE),FALSE); page=captive_shared_cache_map_object->pages+offset/PAGE_SIZE; g_return_val_if_fail(page->data_valid,FALSE); @@ -490,7 +492,7 @@ void captive_shared_cache_map_page_set_lsn(CaptiveSharedCacheMapObject *captive_ CaptiveSharedCacheMapObject_page *page; g_return_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object)); - g_return_if_fail(offset<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->FileSize,PAGE_SIZE)); + g_return_if_fail(offset<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->AllocationSize,PAGE_SIZE)); g_return_if_fail(0==CAPTIVE_ROUND_DOWN_EXCEEDING64(offset,PAGE_SIZE)); page=captive_shared_cache_map_object->pages+offset/PAGE_SIZE; g_return_if_fail(page->data_valid); @@ -566,7 +568,7 @@ CaptiveSharedCacheMapObject_page *page; g_return_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object)); g_return_if_fail(captive_shared_cache_map_object->FileObject!=NULL); - g_return_if_fail(offset<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->FileSize,PAGE_SIZE)); + g_return_if_fail(offset<=CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->AllocationSize,PAGE_SIZE)); g_return_if_fail(0==CAPTIVE_ROUND_DOWN_EXCEEDING64(offset,PAGE_SIZE)); page=captive_shared_cache_map_object->pages+offset/PAGE_SIZE; g_return_if_fail(page->data_valid); @@ -637,7 +639,7 @@ CaptiveSharedCacheMapObject_page *page; g_return_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object)); g_return_if_fail(captive_shared_cache_map_object->FileObject!=NULL); - g_return_if_fail(offsetFileSize,PAGE_SIZE)); + g_return_if_fail(offsetAllocationSize,PAGE_SIZE)); g_return_if_fail(0==CAPTIVE_ROUND_DOWN_EXCEEDING64(offset,PAGE_SIZE)); page=captive_shared_cache_map_object->pages+offset/PAGE_SIZE; g_return_if_fail(page->data_valid); @@ -672,7 +674,7 @@ guint64 now; g_return_val_if_fail(CAPTIVE_SHARED_CACHE_MAP_IS_OBJECT(captive_shared_cache_map_object),0); g_return_val_if_fail(start<=end,0); - end=MIN(end,CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->FileSize,PAGE_SIZE)); + end=MIN(end,CAPTIVE_ROUND_UP64(captive_shared_cache_map_object->AllocationSize,PAGE_SIZE)); start=CAPTIVE_ROUND_DOWN64(start,PAGE_SIZE); end=CAPTIVE_ROUND_UP64(end,PAGE_SIZE);