The states are not stored explicitly with the cache entries; instead they are "inferred" based on other bits in the structure.
This is how:
#define ENTRY_GET_STATE(entry) (ENTRY_IN_LIST(entry) ? \
((entry)->dirty ? DIRTY : \
((entry)->verify ? CLEAN2 : CLEAN)) : \
((entry)->timeout == READING_TIMEOUT ? \
((entry)->verify ? READING2 : READING) : \
(entry)->dirty ? WRITING2 : WRITING))
So you can see that a cache entry is in state CLEAN2 when it is in the clean list and entry->verify is true. This happens on line 398 of block_cache.c.
-Archie