From: teigland@sourceware.org <teigland@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] cluster/group/gfs_controld plock.c
Date: 2 Aug 2006 19:23:43 -0000 [thread overview]
Message-ID: <20060802192343.30538.qmail@sourceware.org> (raw)
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-08-02 19:23:42
Modified files:
group/gfs_controld: plock.c
Log message:
do byte-swapping
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/gfs_controld/plock.c.diff?cvsroot=cluster&r1=1.4&r2=1.5
--- cluster/group/gfs_controld/plock.c 2006/08/02 18:27:57 1.4
+++ cluster/group/gfs_controld/plock.c 2006/08/02 19:23:41 1.5
@@ -87,6 +87,36 @@
struct gdlm_plock_info info;
};
+static void info_bswap_out(struct gdlm_plock_info *i)
+{
+ i->version[0] = cpu_to_le32(i->version[0]);
+ i->version[1] = cpu_to_le32(i->version[1]);
+ i->version[2] = cpu_to_le32(i->version[2]);
+ i->pid = cpu_to_le32(i->pid);
+ i->nodeid = cpu_to_le32(i->nodeid);
+ i->rv = cpu_to_le32(i->rv);
+ i->fsid = cpu_to_le32(i->fsid);
+ i->number = cpu_to_le64(i->number);
+ i->start = cpu_to_le64(i->start);
+ i->end = cpu_to_le64(i->end);
+ i->owner = cpu_to_le64(i->owner);
+}
+
+static void info_bswap_in(struct gdlm_plock_info *i)
+{
+ i->version[0] = le32_to_cpu(i->version[0]);
+ i->version[1] = le32_to_cpu(i->version[1]);
+ i->version[2] = le32_to_cpu(i->version[2]);
+ i->pid = le32_to_cpu(i->pid);
+ i->nodeid = le32_to_cpu(i->nodeid);
+ i->rv = le32_to_cpu(i->rv);
+ i->fsid = le32_to_cpu(i->fsid);
+ i->number = le64_to_cpu(i->number);
+ i->start = le64_to_cpu(i->start);
+ i->end = le64_to_cpu(i->end);
+ i->owner = le64_to_cpu(i->owner);
+}
+
static int get_proc_number(const char *file, const char *name, uint32_t *number)
{
FILE *fl;
@@ -267,14 +297,15 @@
info.nodeid = our_nodeid;
- /* FIXME: do byte swapping */
-
hd = (struct gdlm_header *)buf;
hd->type = MSG_PLOCK;
hd->nodeid = our_nodeid;
hd->to_nodeid = 0;
memcpy(buf + sizeof(struct gdlm_header), &info, sizeof(info));
+ info_bswap_out((struct gdlm_plock_info *) buf +
+ sizeof(struct gdlm_header));
+
rv = send_group_message(mg, len, buf);
free(buf);
@@ -755,7 +786,7 @@
memcpy(&info, buf + sizeof(struct gdlm_header), sizeof(info));
- /* FIXME: do byte swapping */
+ info_bswap_in(&info);
log_group(mg, "receive_plock from %d op %d fs %x num %llx ex %d w %d",
from, info.optype, info.fsid, info.number, info.ex,
@@ -847,11 +878,11 @@
pp = (struct pack_plock *) §ion_buf;
list_for_each_entry(po, &r->locks, list) {
- pp->start = po->start;
- pp->end = po->end;
- pp->owner = po->owner;
- pp->pid = po->pid;
- pp->nodeid = po->nodeid;
+ pp->start = cpu_to_le64(po->start);
+ pp->end = cpu_to_le64(po->end);
+ pp->owner = cpu_to_le64(po->owner);
+ pp->pid = cpu_to_le32(po->pid);
+ pp->nodeid = cpu_to_le32(po->nodeid);
pp->ex = po->ex;
pp->waiter = 0;
pp++;
@@ -859,11 +890,11 @@
}
list_for_each_entry(w, &r->waiters, list) {
- pp->start = w->info.start;
- pp->end = w->info.end;
- pp->owner = w->info.owner;
- pp->pid = w->info.pid;
- pp->nodeid = w->info.nodeid;
+ pp->start = cpu_to_le64(w->info.start);
+ pp->end = cpu_to_le64(w->info.end);
+ pp->owner = cpu_to_le64(w->info.owner);
+ pp->pid = cpu_to_le32(w->info.pid);
+ pp->nodeid = cpu_to_le32(w->info.nodeid);
pp->ex = w->info.ex;
pp->waiter = 1;
pp++;
@@ -899,20 +930,20 @@
for (i = 0; i < count; i++) {
if (!pp->waiter) {
po = malloc(sizeof(struct posix_lock));
- po->start = pp->start;
- po->end = pp->end;
- po->owner = pp->owner;
- po->pid = pp->pid;
- po->nodeid = pp->nodeid;
+ po->start = le64_to_cpu(pp->start);
+ po->end = le64_to_cpu(pp->end);
+ po->owner = le64_to_cpu(pp->owner);
+ po->pid = le32_to_cpu(pp->pid);
+ po->nodeid = le32_to_cpu(pp->nodeid);
po->ex = pp->ex;
list_add_tail(&po->list, &r->locks);
} else {
w = malloc(sizeof(struct lock_waiter));
- w->info.start = pp->start;
- w->info.end = pp->end;
- w->info.owner = pp->owner;
- w->info.pid = pp->pid;
- w->info.nodeid = pp->nodeid;
+ w->info.start = le64_to_cpu(pp->start);
+ w->info.end = le64_to_cpu(pp->end);
+ w->info.owner = le64_to_cpu(pp->owner);
+ w->info.pid = le32_to_cpu(pp->pid);
+ w->info.nodeid = le32_to_cpu(pp->nodeid);
w->info.ex = pp->ex;
list_add_tail(&w->list, &r->waiters);
}
next reply other threads:[~2006-08-02 19:23 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-02 19:23 teigland [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-08-08 18:43 [Cluster-devel] cluster/group/gfs_controld plock.c teigland
2006-08-08 19:37 teigland
2006-08-14 20:15 teigland
2006-08-15 22:21 rpeterso
2006-08-16 17:05 teigland
2006-08-16 19:30 teigland
2006-08-17 19:39 teigland
2006-10-09 21:51 teigland
2006-11-03 15:33 teigland
2006-11-20 18:10 teigland
2006-11-20 18:12 teigland
2006-11-20 18:13 teigland
2006-11-20 21:28 teigland
2006-11-20 21:29 teigland
2006-11-20 21:29 teigland
2007-06-08 21:30 teigland
2007-06-08 21:31 teigland
2007-11-29 21:27 teigland
2007-11-30 16:20 teigland
2008-01-21 20:17 teigland
2008-01-21 20:19 teigland
2008-01-21 20:21 teigland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060802192343.30538.qmail@sourceware.org \
--to=teigland@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).