mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
FS-Cache: Wrap checks on object state
Wrap checks on object state (mostly outside of fs/fscache/object.c) with inline functions so that the mechanism can be replaced. Some of the state checks within object.c are left as-is as they will be replaced. Signed-off-by: David Howells <[email protected]> Tested-By: Milosz Tanski <[email protected]> Acked-by: Jeff Layton <[email protected]>
This commit is contained in:
parent
610be24ee4
commit
493f7bc114
6 changed files with 40 additions and 21 deletions
|
|
@ -115,7 +115,7 @@ struct fscache_cache *fscache_select_cache_for_object(
|
|||
struct fscache_object, cookie_link);
|
||||
|
||||
cache = object->cache;
|
||||
if (object->state >= FSCACHE_OBJECT_DYING ||
|
||||
if (fscache_object_is_dying(object) ||
|
||||
test_bit(FSCACHE_IOERROR, &cache->flags))
|
||||
cache = NULL;
|
||||
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ static int fscache_alloc_object(struct fscache_cache *cache,
|
|||
|
||||
object_already_extant:
|
||||
ret = -ENOBUFS;
|
||||
if (object->state >= FSCACHE_OBJECT_DYING) {
|
||||
if (fscache_object_is_dead(object)) {
|
||||
spin_unlock(&cookie->lock);
|
||||
goto error;
|
||||
}
|
||||
|
|
@ -321,7 +321,7 @@ static int fscache_attach_object(struct fscache_cookie *cookie,
|
|||
ret = -EEXIST;
|
||||
hlist_for_each_entry(p, &cookie->backing_objects, cookie_link) {
|
||||
if (p->cache == object->cache) {
|
||||
if (p->state >= FSCACHE_OBJECT_DYING)
|
||||
if (fscache_object_is_dying(p))
|
||||
ret = -ENOBUFS;
|
||||
goto cant_attach_object;
|
||||
}
|
||||
|
|
@ -332,7 +332,7 @@ static int fscache_attach_object(struct fscache_cookie *cookie,
|
|||
hlist_for_each_entry(p, &cookie->parent->backing_objects,
|
||||
cookie_link) {
|
||||
if (p->cache == object->cache) {
|
||||
if (p->state >= FSCACHE_OBJECT_DYING) {
|
||||
if (fscache_object_is_dying(p)) {
|
||||
ret = -ENOBUFS;
|
||||
spin_unlock(&cookie->parent->lock);
|
||||
goto cant_attach_object;
|
||||
|
|
@ -400,7 +400,7 @@ void __fscache_invalidate(struct fscache_cookie *cookie)
|
|||
object = hlist_entry(cookie->backing_objects.first,
|
||||
struct fscache_object,
|
||||
cookie_link);
|
||||
if (object->state < FSCACHE_OBJECT_DYING)
|
||||
if (fscache_object_is_live(object))
|
||||
fscache_raise_event(
|
||||
object, FSCACHE_OBJECT_EV_INVALIDATE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -457,10 +457,10 @@ static void fscache_initialise_object(struct fscache_object *object)
|
|||
spin_lock_nested(&parent->lock, 1);
|
||||
_debug("parent %s", fscache_object_states[parent->state]);
|
||||
|
||||
if (parent->state >= FSCACHE_OBJECT_DYING) {
|
||||
if (fscache_object_is_dying(parent)) {
|
||||
_debug("bad parent");
|
||||
set_bit(FSCACHE_OBJECT_EV_WITHDRAW, &object->events);
|
||||
} else if (parent->state < FSCACHE_OBJECT_AVAILABLE) {
|
||||
} else if (!fscache_object_is_available(parent)) {
|
||||
_debug("wait");
|
||||
|
||||
/* we may get woken up in this state by child objects
|
||||
|
|
@ -517,9 +517,9 @@ static void fscache_lookup_object(struct fscache_object *object)
|
|||
ASSERTCMP(parent->n_obj_ops, >, 0);
|
||||
|
||||
/* make sure the parent is still available */
|
||||
ASSERTCMP(parent->state, >=, FSCACHE_OBJECT_AVAILABLE);
|
||||
ASSERT(fscache_object_is_available(parent));
|
||||
|
||||
if (parent->state >= FSCACHE_OBJECT_DYING ||
|
||||
if (fscache_object_is_dying(parent) ||
|
||||
test_bit(FSCACHE_IOERROR, &object->cache->flags)) {
|
||||
_debug("unavailable");
|
||||
set_bit(FSCACHE_OBJECT_EV_WITHDRAW, &object->events);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ void fscache_enqueue_operation(struct fscache_operation *op)
|
|||
|
||||
ASSERT(list_empty(&op->pend_link));
|
||||
ASSERT(op->processor != NULL);
|
||||
ASSERTCMP(op->object->state, >=, FSCACHE_OBJECT_AVAILABLE);
|
||||
ASSERT(fscache_object_is_available(op->object));
|
||||
ASSERTCMP(atomic_read(&op->usage), >, 0);
|
||||
ASSERTCMP(op->state, ==, FSCACHE_OP_ST_IN_PROGRESS);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue