commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hurd] 30/75: ext2fs: improve the block cache


From: Samuel Thibault
Subject: [hurd] 30/75: ext2fs: improve the block cache
Date: Thu, 14 Jan 2016 01:04:08 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch dde
in repository hurd.

commit 1b6d78a1a79afe79a71841d914a4e49d6eb9100c
Author: Justus Winter <address@hidden>
Date:   Thu Nov 12 23:22:13 2015 +0100

    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);

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/hurd.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]