diff options
author | David Howells <dhowells@redhat.com> | 2009-11-19 18:11:22 +0000 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2009-11-19 18:11:22 +0000 |
commit | 6897e3df8fc37bd4a58bbcdef8306da7fc175584 (patch) | |
tree | e826cd96f0395775d4fea113dc283ae0282f0384 /lib/bug.c | |
parent | 5753c441889253e4323eee85f791a1d64cf08196 (diff) | |
download | op-kernel-dev-6897e3df8fc37bd4a58bbcdef8306da7fc175584.zip op-kernel-dev-6897e3df8fc37bd4a58bbcdef8306da7fc175584.tar.gz |
FS-Cache: The object-available state can't rely on the cookie to be available
The object-available state in the object processing state machine (as
processed by fscache_object_available()) can't rely on the cookie to be
available because the FSCACHE_COOKIE_CREATING bit may have been cleared by
fscache_obtained_object() prior to the object being put into the
FSCACHE_OBJECT_AVAILABLE state.
Clearing the FSCACHE_COOKIE_CREATING bit on a cookie permits
__fscache_relinquish_cookie() to proceed and detach the cookie from the
object.
To deal with this, we don't dereference object->cookie in
fscache_object_available() if the object has already been detached.
In addition, a couple of assertions are added into fscache_drop_object() to
make sure the object is unbound from the cookie before it gets there.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'lib/bug.c')
0 files changed, 0 insertions, 0 deletions