在 2023/4/14 21:51, David Howells 写道:
Jia Zhu <[email protected]> wrote:#define CACHEFILES_OBJECT_STATE_FUNCS(_state, _STATE) \ static inline bool \ cachefiles_ondemand_object_is_##_state(const struct cachefiles_object *object) \ { \ - return object->state == CACHEFILES_ONDEMAND_OBJSTATE_##_STATE; \ + return object->ondemand->state == CACHEFILES_ONDEMAND_OBJSTATE_##_STATE; \ } \ \ static inline void \ cachefiles_ondemand_set_object_##_state(struct cachefiles_object *object) \ { \ - object->state = CACHEFILES_ONDEMAND_OBJSTATE_##_STATE; \ + object->ondemand->state = CACHEFILES_ONDEMAND_OBJSTATE_##_STATE; \ }I wonder if those need barriers - smp_load_acquire() and smp_store_release(). David
There are three object states: OPEN, CLOSE, REOPENING. Here is no logic in the code such like: A has to watching and waiting for B's status change. And so far I haven't constructed a scenario requires barrier pairs. Thus I didn't add barriers here. Jia
-- Linux-cachefs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/linux-cachefs
