diff options
Diffstat (limited to 'include/linux/fscache-cache.h')
-rw-r--r-- | include/linux/fscache-cache.h | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h index 9b9c1de4a460..c5f92347cbf8 100644 --- a/include/linux/fscache-cache.h +++ b/include/linux/fscache-cache.h @@ -417,15 +417,6 @@ struct fscache_object { extern const char *fscache_object_states[]; -#define fscache_object_is_active(obj) \ - (!test_bit(FSCACHE_IOERROR, &(obj)->cache->flags) && \ - (obj)->state >= FSCACHE_OBJECT_AVAILABLE && \ - (obj)->state < FSCACHE_OBJECT_DYING) - -#define fscache_object_is_dead(obj) \ - (test_bit(FSCACHE_IOERROR, &(obj)->cache->flags) && \ - (obj)->state >= FSCACHE_OBJECT_DYING) - extern void fscache_object_init(struct fscache_object *, struct fscache_cookie *, struct fscache_cache *); @@ -438,6 +429,34 @@ extern void fscache_object_destroy(struct fscache_object *object); #define fscache_object_destroy(object) do {} while(0) #endif +static inline bool fscache_object_is_live(struct fscache_object *object) +{ + return object->state < FSCACHE_OBJECT_DYING; +} + +static inline bool fscache_object_is_dying(struct fscache_object *object) +{ + return !fscache_object_is_live(object); +} + +static inline bool fscache_object_is_available(struct fscache_object *object) +{ + return object->state >= FSCACHE_OBJECT_AVAILABLE; +} + +static inline bool fscache_object_is_active(struct fscache_object *object) +{ + return fscache_object_is_available(object) && + fscache_object_is_live(object) && + !test_bit(FSCACHE_IOERROR, &object->cache->flags); +} + +static inline bool fscache_object_is_dead(struct fscache_object *object) +{ + return fscache_object_is_dying(object) && + test_bit(FSCACHE_IOERROR, &object->cache->flags); +} + /** * fscache_object_destroyed - Note destruction of an object in a cache * @cache: The cache from which the object came |