[sheepdog] [PATCH v2 3/3] collie: don't use uint64_t for atomic operations

MORITA Kazutaka morita.kazutaka at gmail.com
Thu Aug 8 10:39:37 CEST 2013


From: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>

Atomic operations against 64 bit integers are not allowed on 32 bit
architectures.  Using unsigned long instead of uint64_t fixes the
problem and doesn't hurt x86_64.

Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
 collie/farm/farm.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/collie/farm/farm.c b/collie/farm/farm.c
index 2a4e307..4b43f3d 100644
--- a/collie/farm/farm.c
+++ b/collie/farm/farm.c
@@ -255,7 +255,7 @@ static void save_object_done(struct work *work)
 {
 	struct snapshot_work *sw = container_of(work, struct snapshot_work,
 						work);
-	static uint64_t saved;
+	static unsigned long saved;
 
 	if (uatomic_is_true(&work_error))
 		goto out;
@@ -329,7 +329,7 @@ static void do_load_object(struct work *work)
 	void *buffer = NULL;
 	size_t size;
 	struct snapshot_work *sw;
-	static uint64_t loaded;
+	static unsigned long loaded;
 
 	if (uatomic_is_true(&work_error))
 		return;
-- 
1.7.9.5



More information about the sheepdog mailing list