summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorigor@rurik.mysql.com <>2006-04-19 18:08:15 -0700
committerigor@rurik.mysql.com <>2006-04-19 18:08:15 -0700
commit27cc6f4bc3be40dc6d6dac3c676193d5c1de3cd5 (patch)
tree3475fbd06f0fb2c8376c6279c435592f58d6324f /mysys
parent592dc88be75fcad1129e053820bd326aeb114cb4 (diff)
parent67458961cf5cf8d50ca9b2b694a84599809b46ec (diff)
downloadmariadb-git-27cc6f4bc3be40dc6d6dac3c676193d5c1de3cd5.tar.gz
Merge rurik.mysql.com:/home/igor/dev/mysql-4.1-2
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
Diffstat (limited to 'mysys')
-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;