[Cluster-devel] [PATCH] Fix endian problem with DLM_RCOM_LOCK_REPLY

Fabio M. Di Nitto fabbione at ubuntu.com
Tue Jan 15 10:04:42 UTC 2008


Hi Steven,

We need to swab the rc_buf also when we receive DLM_RCOM_LOCK_REPLY 
otherwise umount'ing gfs2 on big endian machines will hang the entire 
cluster.

Please apply.

Thanks
Fabio

Signed-off-by: Fabio M. Di Nitto <fabbione at ubuntu.com>

diff --git a/fs/dlm/util.c b/fs/dlm/util.c
index 963889c..5320304 100644
--- a/fs/dlm/util.c
+++ b/fs/dlm/util.c
@@ -156,7 +156,7 @@ void dlm_rcom_in(struct dlm_rcom *rc)
  	rc->rc_seq		= le64_to_cpu(rc->rc_seq);
  	rc->rc_seq_reply	= le64_to_cpu(rc->rc_seq_reply);

-	if (rc->rc_type == DLM_RCOM_LOCK)
+	if ((rc->rc_type == DLM_RCOM_LOCK) || (rc->rc_type == DLM_RCOM_LOCK_REPLY))
  		rcom_lock_in((struct rcom_lock *) rc->rc_buf);

  	else if (rc->rc_type == DLM_RCOM_STATUS_REPLY)


--
I'm going to make him an offer he can't refuse.




More information about the Cluster-devel mailing list