| struct list_head { | |
| struct list_head *next, *prev; | |
| }; | |
| struct dm_exception { | |
| struct list_head hash_list; | |
| unsigned long long old_chunk; | |
| unsigned long long new_chunk; | |
| }; | |
| struct dm_exception *dm_lookup_exception(struct list_head *table, unsigned long long chunk) { | |
| struct list_head *slot; | |
| struct dm_exception *e; | |
| slot = &table[0]; | |
| e = (struct dm_exception *)slot->next; | |
| for (; &e->hash_list != (slot);) | |
| if (chunk <= (e->new_chunk>>56)) | |
| return e; | |
| } |