On Fri, 2013-09-06 at 16:26 +0200, Lukas Slebodnik wrote:
Step 6) Remove record R3(hash_1:4, hash_2:3) stored at slot index
0x43
a) Remove record R3 from chain starting by hash R3->hash1 (value 4)
hash[1] -> 0x12(R1) -> 0x43(R3) -> 0x54(R4) -> MC_INVALID_VAL
hash[2] -> 0x12(R1) -> 0x43(R3) -> 0x54(R4) -> MC_INVALID_VAL
hash[3] -> 0x43(R3) -> 0x54(R4) -> MC_INVALID_VAL
hash[4] -> 0x54(R4) -> MC_INVALID_VAL
hash[5] -> 0x54(R4) -> MC_INVALID_VAL
b) Remove record R3 from chain starting by hash R3->hash2 (value 3)
hash[1] -> 0x12(R1) -> 0x43(R3) -> 0x54(R4) -> MC_INVALID_VAL
hash[2] -> 0x12(R1) -> 0x43(R3) -> 0x54(R4) -> MC_INVALID_VAL
hash[3] -> MC_INVALID_VAL
hash[4] -> 0x54(R4) -> MC_INVALID_VAL
hash[5] -> 0x54(R4) -> MC_INVALID_VAL
I do not see how this happens, in hash[3] you have another record after
R3 so hash[3] should be
hash[3] -> 0x54(R4) -> MC_INVALID_VAL
however I do see how R3 would remain in hash[1] and hash[2].
And that is a problem, the problem I was trying to wrap my mind around
with the patch you proposed last time. Wouldn't the revalidation idea I
had last time fix this issue ?
Simo.
--
Simo Sorce * Red Hat, Inc * New York