diff options
Diffstat (limited to 'debian/patches/ext2fs-optimize-bcache0001-ext2fs-improve-the-block-cache.patch')
-rw-r--r-- | debian/patches/ext2fs-optimize-bcache0001-ext2fs-improve-the-block-cache.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/debian/patches/ext2fs-optimize-bcache0001-ext2fs-improve-the-block-cache.patch b/debian/patches/ext2fs-optimize-bcache0001-ext2fs-improve-the-block-cache.patch new file mode 100644 index 00000000..05b341de --- /dev/null +++ b/debian/patches/ext2fs-optimize-bcache0001-ext2fs-improve-the-block-cache.patch @@ -0,0 +1,53 @@ +From 1b6d78a1a79afe79a71841d914a4e49d6eb9100c Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Thu, 12 Nov 2015 23:22:13 +0100 +Subject: [PATCH hurd 1/3] ext2fs: improve the block cache + +* ext2fs/pager.c (disk_cache_block_ref): Improve the cache by using +the new lookup and insertion functions that return and use a location +pointer. +--- + ext2fs/pager.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/ext2fs/pager.c b/ext2fs/pager.c +index 9df7e0b..2528856 100644 +--- a/ext2fs/pager.c ++++ b/ext2fs/pager.c +@@ -960,6 +960,7 @@ disk_cache_block_ref (block_t block) + { + int index; + void *bptr; ++ hurd_ihash_locp_t slot; + + assert (block < store->size >> log2_block_size); + +@@ -968,7 +969,7 @@ disk_cache_block_ref (block_t block) + retry_ref: + pthread_mutex_lock (&disk_cache_lock); + +- bptr = hurd_ihash_find (disk_cache_bptr, block); ++ bptr = hurd_ihash_locp_find (disk_cache_bptr, block, &slot); + if (bptr) + /* Already mapped. */ + { +@@ -1091,12 +1092,13 @@ retry_ref: + #endif + + /* Re-associate. */ ++ ++ /* New association. */ ++ if (hurd_ihash_locp_add (disk_cache_bptr, slot, block, bptr)) ++ ext2_panic ("Couldn't hurd_ihash_locp_add new disk block"); + if (disk_cache_info[index].block != DC_NO_BLOCK) + /* Remove old association. */ + hurd_ihash_remove (disk_cache_bptr, disk_cache_info[index].block); +- /* New association. */ +- if (hurd_ihash_add (disk_cache_bptr, block, bptr)) +- ext2_panic ("Couldn't hurd_ihash_add new disk block"); + assert (! (disk_cache_info[index].flags & DC_DONT_REUSE & ~DC_UNTOUCHED)); + disk_cache_info[index].block = block; + assert (! disk_cache_info[index].ref_count); +-- +2.1.4 + |