在 2023/4/14 21:51, David Howells 写道:
Jia Zhu <zhujia...@bytedance.com> 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
Linux-cachefs@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to