[sheepdog] [PATCH 2/4] sheep, dog: introduce a new state for expressing coherence of inode objects in clients
Ruoyu
liangry at ucweb.com
Thu Aug 7 05:10:44 CEST 2014
Hi Hitoshi,
+static bool add_new_participant(struct vdi_state_entry *entry,
+ const struct node_id *owner)
+{
+ int idx;
+
+ if (entry->lock_state == LOCK_STATE_UNLOCKED) {
+ assert(!entry->nr_participants);
+
+ sd_debug("%s is first owner of %"PRIx32, node_id_to_str(owner),
+ entry->vid);
+
+ entry->nr_participants = 1;
+ memcpy(&entry->participants[0], owner, sizeof(*owner));
+ entry->participants_state[0] = SHARED_LOCK_STATE_MODIFIED;
+ entry->lock_state = LOCK_STATE_SHARED;
+
+ return true;
+ }
+
+ assert(entry->lock_state == LOCK_STATE_UNLOCKED);
It seems the assertion will be failure. Am I misunderstanding?
More information about the sheepdog
mailing list