[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