You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07: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 <dhowells@redhat.com> Tested-By: Milosz Tanski <milosz@adfin.com> Acked-by: Jeff Layton <jlayton@redhat.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user