summaryrefslogtreecommitdiff
path: root/mysys/mf_keycache.c
diff options
context:
space:
mode:
authorunknown <igor@rurik.mysql.com>2006-04-19 18:08:15 -0700
committerunknown <igor@rurik.mysql.com>2006-04-19 18:08:15 -0700
commit8e27c3744fb06e4969142a9f13af2ad219b91cb3 (patch)
tree3475fbd06f0fb2c8376c6279c435592f58d6324f /mysys/mf_keycache.c
parentbf8f30b532ef217dac2a168124706d28e19a320f (diff)
parente4d653abb8a2b25ca932c75e61e75a97f49bd34c (diff)
downloadmariadb-git-8e27c3744fb06e4969142a9f13af2ad219b91cb3.tar.gz
Merge rurik.mysql.com:/home/igor/dev/mysql-4.1-2
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0 mysys/mf_keycache.c: Auto merged ndb/src/kernel/SimBlockList.cpp: Auto merged ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp: Auto merged mysql-test/r/func_gconcat.result: Manual merge mysql-test/r/key_cache.result: Manual merge mysql-test/t/func_gconcat.test: Manual merge mysql-test/t/key_cache.test: Manual merge sql/item_func.cc: Manual merge sql/item_sum.h: Manual merge sql/lock.cc: Manual merge sql/sql_select.cc: Manual merge sql/unireg.h: Manual merge
Diffstat (limited to 'mysys/mf_keycache.c')
-rw-r--r--mysys/mf_keycache.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/mysys/mf_keycache.c b/mysys/mf_keycache.c
index 3b5e277b56d..11e27bb19ad 100644
--- a/mysys/mf_keycache.c
+++ b/mysys/mf_keycache.c
@@ -1805,6 +1805,7 @@ byte *key_cache_read(KEY_CACHE *keycache,
uint status;
int page_st;
+ offset= (uint) (filepos & (keycache->key_cache_block_size-1));
/* Read data in key_cache_block_size increments */
do
{
@@ -1814,7 +1815,6 @@ byte *key_cache_read(KEY_CACHE *keycache,
keycache_pthread_mutex_unlock(&keycache->cache_lock);
goto no_key_cache;
}
- offset= (uint) (filepos & (keycache->key_cache_block_size-1));
filepos-= offset;
read_length= length;
set_if_smaller(read_length, keycache->key_cache_block_size-offset);
@@ -1890,6 +1890,7 @@ byte *key_cache_read(KEY_CACHE *keycache,
#endif
buff+= read_length;
filepos+= read_length+offset;
+ offset= 0;
} while ((length-= read_length));
DBUG_RETURN(start);
@@ -1941,17 +1942,17 @@ int key_cache_insert(KEY_CACHE *keycache,
uint read_length;
int page_st;
int error;
+ uint offset;
+ offset= (uint) (filepos & (keycache->key_cache_block_size-1));
do
{
- uint offset;
keycache_pthread_mutex_lock(&keycache->cache_lock);
if (!keycache->can_be_used)
{
keycache_pthread_mutex_unlock(&keycache->cache_lock);
DBUG_RETURN(0);
}
- offset= (uint) (filepos & (keycache->key_cache_block_size-1));
/* Read data into key cache from buff in key_cache_block_size incr. */
filepos-= offset;
read_length= length;
@@ -2009,6 +2010,7 @@ int key_cache_insert(KEY_CACHE *keycache,
buff+= read_length;
filepos+= read_length+offset;
+ offset= 0;
} while ((length-= read_length));
}
@@ -2075,17 +2077,17 @@ int key_cache_write(KEY_CACHE *keycache,
/* Key cache is used */
uint read_length;
int page_st;
+ uint offset;
+ offset= (uint) (filepos & (keycache->key_cache_block_size-1));
do
{
- uint offset;
keycache_pthread_mutex_lock(&keycache->cache_lock);
if (!keycache->can_be_used)
{
keycache_pthread_mutex_unlock(&keycache->cache_lock);
goto no_key_cache;
}
- offset= (uint) (filepos & (keycache->key_cache_block_size-1));
/* Write data in key_cache_block_size increments */
filepos-= offset;
read_length= length;