ITS#2348 - revert previous patch, use patch from ITS

This commit is contained in:
Howard Chu 2003-03-12 13:40:54 +00:00
parent c2fd1b8a3f
commit 21a95f4309

View File

@ -553,19 +553,13 @@ idl_insert_key(
#ifndef USE_INDIRECT_NIDS
/* select the block to try inserting into *//* XXX linear search XXX */
for ( i = 0; !ID_BLOCK_NOID(idl, i) && id > ID_BLOCK_ID(idl, i); i++ )
for ( i = 0; !ID_BLOCK_NOID(idl, i) && id >= ID_BLOCK_ID(idl, i); i++ )
; /* NULL */
#else
i = idl_find(idl, id);
if (ID_BLOCK_ID(idl, i) < id)
if (ID_BLOCK_ID(idl, i) <= id)
i++;
#endif
/* The ID already exists in the IDL, no insert needed */
if (ID_BLOCK_ID(idl, i) == id) {
idl_free( idl );
return 0;
}
if ( i != 0 ) {
i--;
first = 0;
@ -573,6 +567,11 @@ idl_insert_key(
first = 1;
}
/* At this point, the following condition must be true:
* ID_BLOCK_ID(idl, i) <= id && id < ID_BLOCK_ID(idl, i+1)
* except when i is the first or the last block.
*/
/* get the block */
cont_alloc( &k2, &key );
cont_id( &k2, ID_BLOCK_ID(idl, i) );