FS-Cache: Add transition to handle invalidate immediately after lookup
Add a missing transition to the FS-Cache object state machine to handle an invalidation event occuring between the back end completing the object lookup by calling fscache_obtained_object() (which moves to state OBJECT_AVAILABLE) and the backend returning to fscache_lookup_object() and thence to fscache_object_state_machine() which then does a goto lookup_transit to handle the transition - but lookup_transit doesn't handle EV_INVALIDATE. Without this, the following BUG can be logged: FS-Cache: Unsupported event 2 [5/f7] in state OBJECT_AVAILABLE ------------[ cut here ]------------ kernel BUG at fs/fscache/object.c:357! Where event 2 is EV_INVALIDATE. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
Родитель
8c209ce721
Коммит
969695215f
|
@ -284,6 +284,9 @@ lookup_transit:
|
|||
case FSCACHE_OBJECT_EV_ERROR:
|
||||
new_state = FSCACHE_OBJECT_LC_DYING;
|
||||
goto change_state;
|
||||
case FSCACHE_OBJECT_EV_INVALIDATE:
|
||||
new_state = FSCACHE_OBJECT_INVALIDATING;
|
||||
goto change_state;
|
||||
case FSCACHE_OBJECT_EV_REQUEUE:
|
||||
goto done;
|
||||
case -1:
|
||||
|
|
Загрузка…
Ссылка в новой задаче