CVS: intermezzo/presto24 journal.c,1.58,1.59 kml_unpack.c,1.19,1.20 presto.c,1.40,1.41 super.c,1.39,1.40 vfs.c,1.71,1.72

Robert Read <[email protected]> Thu, 26 Sep 2002 17:43:18 -0700
Newsgroups gmane.comp.file-systems.intermezzo.cvs
Message-ID <[email protected]>
Update of /cvsroot/intermezzo/intermezzo/presto24
In directory usw-pr-cvs1:/tmp/cvs-serv20479/fs24

Modified Files:
	journal.c kml_unpack.c presto.c super.c vfs.c 
Log Message:
* fix various endian problems so PowerPC can work


Index: journal.c
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/presto24/journal.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -U2 -r1.58 -r1.59
--- journal.c	24 Apr 2002 02:52:01 -0000	1.58
+++ journal.c	27 Sep 2002 00:43:16 -0000	1.59
@@ -357,13 +357,44 @@
 }
 
-static inline char *log_version(char *buf, struct dentry *dentry)
+static inline char *log_dentry_version(char *buf, struct dentry *dentry)
 {
         struct presto_version version;
 
         presto_getversion(&version, dentry->d_inode);
+        
+        version.pv_mtime = HTON__u64(version.pv_mtime);
+        version.pv_ctime = HTON__u64(version.pv_ctime);
+        version.pv_size = HTON__u64(version.pv_size);
+
+        return logit(buf, &version, sizeof(version));
+}
+
+static inline char *log_version(char *buf, struct presto_version *pv)
+{
+        struct presto_version version;
+
+        memcpy(&version, pv, sizeof(version));
+        
+        version.pv_mtime = HTON__u64(version.pv_mtime);
+        version.pv_ctime = HTON__u64(version.pv_ctime);
+        version.pv_size = HTON__u64(version.pv_size);
 
         return logit(buf, &version, sizeof(version));
 }
 
+static inline char *log_rollback(char *buf, struct izo_rollback_data *rb)
+{
+        struct izo_rollback_data rollback;
+
+        memcpy(&rollback, rb, sizeof(rollback));
+        
+        rollback.rb_mode = HTON__u32(rollback.rb_mode);
+        rollback.rb_rdev = HTON__u32(rollback.rb_rdev);
+        rollback.rb_uid = HTON__u64(rollback.rb_uid);
+        rollback.rb_gid = HTON__u64(rollback.rb_gid);
+
+        return logit(buf, &rollback, sizeof(rollback));
+}
+
 static inline char *journal_log_suffix(char *buf, char *log,
                                        struct presto_file_set *fset,
@@ -390,5 +421,5 @@
            s.recno = cpu_to_le32(rec->recno); */ 
         s.time = cpu_to_le32(CURRENT_TIME);
-        s.len = cpu_to_le32(p->len);
+        s.len = p->len;
         return logit(buf, &s, sizeof(s));
 }
@@ -1297,10 +1328,10 @@
         if ( size > sizeof(record) )
                 CERROR("InterMezzo: BUFFER OVERFLOW in %s!\n", __FUNCTION__);
-
+        
         rec->is_kml = 0;
         rec->size = size + size_round(le32_to_cpu(pathlen));
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, new_file_ver, sizeof(*new_file_ver));
+        logrecord = log_version(logrecord, new_file_ver);
         logrecord = logit(logrecord, &ino, sizeof(ino));
         logrecord = logit(logrecord, &generation, sizeof(generation));
@@ -1309,5 +1340,5 @@
         logrecord = logit(logrecord, &remote_generation,
                           sizeof(remote_generation));
-        logrecord = logit(logrecord, remote_version, sizeof(*remote_version));
+        logrecord = log_version(logrecord, remote_version);
         logrecord = logit(logrecord, &rec->offset, sizeof(rec->offset));
         logrecord = journal_log_suffix(logrecord, record, fset, dentry, rec);
@@ -1527,5 +1558,5 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, old_ver, sizeof(*old_ver));
+        logrecord = log_version(logrecord, old_ver);
         logrecord = logit(logrecord, &valid, sizeof(valid));
         logrecord = logit(logrecord, &mode, sizeof(mode));
@@ -1536,5 +1567,5 @@
         logrecord = logit(logrecord, &ctime, sizeof(ctime));
         logrecord = logit(logrecord, &flags, sizeof(flags));
-        logrecord = logit(logrecord, rb, sizeof(*rb));
+        logrecord = log_rollback(logrecord, rb);
         logrecord = logit(logrecord, &pathlen, sizeof(pathlen));
         logrecord = journal_log_suffix(logrecord, record, fset, dentry, rec);
@@ -1640,7 +1671,7 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, tgt_dir_ver, sizeof(*tgt_dir_ver));
-        logrecord = log_version(logrecord, dentry->d_parent);
-        logrecord = logit(logrecord, new_file_ver, sizeof(*new_file_ver));
+        logrecord = log_version(logrecord, tgt_dir_ver);
+        logrecord = log_dentry_version(logrecord, dentry->d_parent);
+        logrecord = log_version(logrecord, new_file_ver);
         logrecord = logit(logrecord, &lmode, sizeof(lmode));
         logrecord = logit(logrecord, &uid, sizeof(uid));
@@ -1697,7 +1728,7 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, tgt_dir_ver, sizeof(*tgt_dir_ver));
-        logrecord = log_version(logrecord, dentry->d_parent);
-        logrecord = logit(logrecord, new_link_ver, sizeof(*new_link_ver));
+        logrecord = log_version(logrecord, tgt_dir_ver);
+        logrecord = log_dentry_version(logrecord, dentry->d_parent);
+        logrecord = log_version(logrecord, new_link_ver);
         logrecord = logit(logrecord, &uid, sizeof(uid));
         logrecord = logit(logrecord, &gid, sizeof(gid));
@@ -1754,7 +1785,7 @@
         logrecord = journal_log_prefix(record, opcode, rec);
 
-        logrecord = logit(logrecord, tgt_dir_ver, sizeof(*tgt_dir_ver));
-        logrecord = log_version(logrecord, dentry->d_parent);
-        logrecord = logit(logrecord, new_dir_ver, sizeof(*new_dir_ver));
+        logrecord = log_version(logrecord, tgt_dir_ver);
+        logrecord = log_dentry_version(logrecord, dentry->d_parent);
+        logrecord = log_version(logrecord, new_dir_ver);
         logrecord = logit(logrecord, &lmode, sizeof(lmode));
         logrecord = logit(logrecord, &uid, sizeof(uid));
@@ -1813,7 +1844,7 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, tgt_dir_ver, sizeof(*tgt_dir_ver));
-        logrecord = log_version(logrecord, dir);
-        logrecord = logit(logrecord, old_dir_ver, sizeof(*old_dir_ver));
+        logrecord = log_version(logrecord, tgt_dir_ver);
+        logrecord = log_dentry_version(logrecord, dir);
+        logrecord = log_version(logrecord, old_dir_ver);
         logrecord = logit(logrecord, rb, sizeof(*rb));
         logrecord = logit(logrecord, &pathlen, sizeof(pathlen));
@@ -1873,7 +1904,7 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, tgt_dir_ver, sizeof(*tgt_dir_ver));
-        logrecord = log_version(logrecord, dentry->d_parent);
-        logrecord = logit(logrecord, new_node_ver, sizeof(*new_node_ver));
+        logrecord = log_version(logrecord, tgt_dir_ver);
+        logrecord = log_dentry_version(logrecord, dentry->d_parent);
+        logrecord = log_version(logrecord, new_node_ver);
         logrecord = logit(logrecord, &lmode, sizeof(lmode));
         logrecord = logit(logrecord, &uid, sizeof(uid));
@@ -1933,7 +1964,7 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, tgt_dir_ver, sizeof(*tgt_dir_ver));
-        logrecord = log_version(logrecord, tgt->d_parent);
-        logrecord = logit(logrecord, new_link_ver, sizeof(*new_link_ver));
+        logrecord = log_version(logrecord, tgt_dir_ver);
+        logrecord = log_dentry_version(logrecord, tgt->d_parent);
+        logrecord = log_version(logrecord, new_link_ver);
         logrecord = logit(logrecord, &srcpathlen, sizeof(srcpathlen));
         logrecord = logit(logrecord, &pathlen, sizeof(pathlen));
@@ -1991,8 +2022,8 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, src_dir_ver, sizeof(*src_dir_ver));
-        logrecord = log_version(logrecord, src->d_parent);
-        logrecord = logit(logrecord, tgt_dir_ver, sizeof(*tgt_dir_ver));
-        logrecord = log_version(logrecord, tgt->d_parent);
+        logrecord = log_version(logrecord, src_dir_ver);
+        logrecord = log_dentry_version(logrecord, src->d_parent);
+        logrecord = log_version(logrecord, tgt_dir_ver);
+        logrecord = log_dentry_version(logrecord, tgt->d_parent);
         logrecord = logit(logrecord, &srcpathlen, sizeof(srcpathlen));
         logrecord = logit(logrecord, &pathlen, sizeof(pathlen));
@@ -2051,8 +2082,8 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, tgt_dir_ver, sizeof(*tgt_dir_ver));
-        logrecord = log_version(logrecord, dir);
-        logrecord = logit(logrecord, old_file_ver, sizeof(*old_file_ver));
-        logrecord = logit(logrecord, rb, sizeof(*rb));
+        logrecord = log_version(logrecord, tgt_dir_ver);
+        logrecord = log_dentry_version(logrecord, dir);
+        logrecord = log_version(logrecord, old_file_ver);
+        logrecord = log_rollback(logrecord, rb);
         logrecord = logit(logrecord, &pathlen, sizeof(pathlen));
         logrecord = logit(logrecord, &llen, sizeof(llen));
@@ -2149,6 +2180,6 @@
         logrecord = logit(logrecord, &open_uid, sizeof(open_uid));
         logrecord = logit(logrecord, &open_gid, sizeof(open_gid));
-        logrecord = logit(logrecord, old_file_ver, sizeof(*old_file_ver));
-        logrecord = logit(logrecord, new_file_ver, sizeof(*new_file_ver));
+        logrecord = log_version(logrecord, old_file_ver);
+        logrecord = log_version(logrecord, new_file_ver);
         logrecord = logit(logrecord, &ino, sizeof(ino));
         logrecord = logit(logrecord, &generation, sizeof(generation));
@@ -2199,5 +2230,5 @@
         logrecord = journal_log_prefix_with_groups(record, opcode, rec,
                                                    ngroups, groups);
-        logrecord = logit(logrecord, new_file_ver, sizeof(*new_file_ver));
+        logrecord = log_version(logrecord, new_file_ver);
         logrecord = logit(logrecord, &ino, sizeof(ino));
         logrecord = logit(logrecord, &generation, sizeof(generation));
@@ -2402,6 +2433,6 @@
 
         logrecord = journal_log_prefix(record, opcode, rec);
-        logrecord = logit(logrecord, ver, sizeof(*ver));
-        logrecord = log_version(logrecord, dentry);
+        logrecord = log_version(logrecord, ver);
+        logrecord = log_dentry_version(logrecord, dentry);
         logrecord = logit(logrecord, &flags, sizeof(flags));
         logrecord = logit(logrecord, &mode, sizeof(flags));

Index: kml_unpack.c
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/presto24/kml_unpack.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -U2 -r1.19 -r1.20
--- kml_unpack.c	21 Apr 2002 04:07:07 -0000	1.19
+++ kml_unpack.c	27 Sep 2002 00:43:16 -0000	1.20
@@ -61,4 +61,21 @@
 #include <linux/intermezzo_fs.h>
 
+int kml_unpack_version(struct presto_version **ver, char **buf, char *end) 
+{
+	char *ptr = *buf;
+        struct presto_version *pv;
+
+	UNLOGP(*ver, struct presto_version, ptr, end);
+        pv = *ver;
+        pv->pv_mtime   = NTOH__u64(pv->pv_mtime);
+        pv->pv_ctime   = NTOH__u64(pv->pv_ctime);
+        pv->pv_size    = NTOH__u64(pv->pv_size);
+
+	*buf = ptr;
+
+        return 0;
+}
+
+
 static int kml_unpack_noop(struct kml_rec *rec, char **buf, char *end)
 {
@@ -71,5 +88,5 @@
 	char *ptr = *buf;
 
-	UNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 
@@ -82,11 +99,11 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->mode, __u32, ptr, end);
-	UNLOGV(rec->uid, __u32, ptr, end);
-	UNLOGV(rec->gid, __u32, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	LUNLOGV(rec->mode, __u32, ptr, end);
+	LUNLOGV(rec->uid, __u32, ptr, end);
+	LUNLOGV(rec->gid, __u32, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 
@@ -101,11 +118,11 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->mode, __u32, ptr, end);
-	UNLOGV(rec->uid, __u32, ptr, end);
-	UNLOGV(rec->gid, __u32, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	LUNLOGV(rec->mode, __u32, ptr, end);
+	LUNLOGV(rec->uid, __u32, ptr, end);
+	LUNLOGV(rec->gid, __u32, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 
@@ -120,14 +137,14 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->old_objectv, struct presto_version, ptr, end);
-        UNLOGV(rec->old_mode, __u32, ptr, end);
-        UNLOGV(rec->old_rdev, __u32, ptr, end);
-        UNLOGV(rec->old_uid, __u64, ptr, end);
-        UNLOGV(rec->old_gid, __u64, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
-	UNLOGV(rec->targetlen, __u32, ptr, end);
-        UNLOGV(rec->old_targetlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_parentv, &ptr, end);
+	kml_unpack_version(&rec->old_objectv, &ptr, end);
+        LUNLOGV(rec->old_mode, __u32, ptr, end);
+        LUNLOGV(rec->old_rdev, __u32, ptr, end);
+        LUNLOGV(rec->old_uid, __u64, ptr, end);
+        LUNLOGV(rec->old_gid, __u64, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->targetlen, __u32, ptr, end);
+        LUNLOGV(rec->old_targetlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 	UNLOGL(rec->target, char, rec->targetlen, ptr, end);
@@ -144,13 +161,13 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->old_objectv, struct presto_version, ptr, end);
-        UNLOGV(rec->old_mode, __u32, ptr, end);
-        UNLOGV(rec->old_rdev, __u32, ptr, end);
-        UNLOGV(rec->old_uid, __u64, ptr, end);
-        UNLOGV(rec->old_gid, __u64, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
-	UNLOGV(rec->targetlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_parentv, &ptr, end);
+	kml_unpack_version(&rec->old_objectv, &ptr, end);
+        LUNLOGV(rec->old_mode, __u32, ptr, end);
+        LUNLOGV(rec->old_rdev, __u32, ptr, end);
+        LUNLOGV(rec->old_uid, __u64, ptr, end);
+        LUNLOGV(rec->old_gid, __u64, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->targetlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 	UNLOGL(rec->target, char, rec->targetlen, ptr, end);
@@ -166,12 +183,12 @@
 	char *ptr = *buf;
 
-	UNLOGV(rec->mode, __u32, ptr, end);  // used for open_mode
-	UNLOGV(rec->uid, __u32, ptr, end);   // used for open_uid
-	UNLOGV(rec->gid, __u32, ptr, end);   // used for open_gid
-	UNLOGP(rec->old_objectv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->ino, __u64, ptr, end);
-	UNLOGV(rec->generation, __u32, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->mode, __u32, ptr, end);  // used for open_mode
+	LUNLOGV(rec->uid, __u32, ptr, end);   // used for open_uid
+	LUNLOGV(rec->gid, __u32, ptr, end);   // used for open_gid
+	kml_unpack_version(&rec->old_objectv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	LUNLOGV(rec->ino, __u64, ptr, end);
+	LUNLOGV(rec->generation, __u32, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 
@@ -186,11 +203,11 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->new_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->old_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->uid, __u32, ptr, end);
-	UNLOGV(rec->gid, __u32, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
-	UNLOGV(rec->targetlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	LUNLOGV(rec->uid, __u32, ptr, end);
+	LUNLOGV(rec->gid, __u32, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->targetlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 	UNLOGL(rec->target, char, rec->targetlen, ptr, end);
@@ -206,10 +223,10 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_objectv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGP(rec->old_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_parentv, struct presto_version, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
-	UNLOGV(rec->targetlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_objectv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	kml_unpack_version(&rec->old_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_parentv, &ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->targetlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 	UNLOGL(rec->target, char, rec->targetlen, ptr, end);
@@ -225,18 +242,18 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->valid, __u32, ptr, end);
-	UNLOGV(rec->mode, __u32, ptr, end);
-	UNLOGV(rec->uid, __u32, ptr, end);
-	UNLOGV(rec->gid, __u32, ptr, end);
-	UNLOGV(rec->size, __u64, ptr, end);
-	UNLOGV(rec->mtime, __u64, ptr, end);
-	UNLOGV(rec->ctime, __u64, ptr, end);
-	UNLOGV(rec->flags, __u32, ptr, end);
-        UNLOGV(rec->old_mode, __u32, ptr, end);
-        UNLOGV(rec->old_rdev, __u32, ptr, end);
-        UNLOGV(rec->old_uid, __u64, ptr, end);
-        UNLOGV(rec->old_gid, __u64, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_objectv, &ptr, end);
+	LUNLOGV(rec->valid, __u32, ptr, end);
+	LUNLOGV(rec->mode, __u32, ptr, end);
+	LUNLOGV(rec->uid, __u32, ptr, end);
+	LUNLOGV(rec->gid, __u32, ptr, end);
+	LUNLOGV(rec->size, __u64, ptr, end);
+	LUNLOGV(rec->mtime, __u64, ptr, end);
+	LUNLOGV(rec->ctime, __u64, ptr, end);
+	LUNLOGV(rec->flags, __u32, ptr, end);
+        LUNLOGV(rec->old_mode, __u32, ptr, end);
+        LUNLOGV(rec->old_rdev, __u32, ptr, end);
+        LUNLOGV(rec->old_uid, __u64, ptr, end);
+        LUNLOGV(rec->old_gid, __u64, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 	
@@ -251,9 +268,9 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
-	UNLOGV(rec->targetlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->targetlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 	UNLOGL(rec->target, char, rec->targetlen, ptr, end);
@@ -268,13 +285,13 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_parentv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->mode, __u32, ptr, end);
-	UNLOGV(rec->uid, __u32, ptr, end);
-	UNLOGV(rec->gid, __u32, ptr, end);
-	UNLOGV(rec->major, __u32, ptr, end);
-	UNLOGV(rec->minor, __u32, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_parentv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	LUNLOGV(rec->mode, __u32, ptr, end);
+	LUNLOGV(rec->uid, __u32, ptr, end);
+	LUNLOGV(rec->gid, __u32, ptr, end);
+	LUNLOGV(rec->major, __u32, ptr, end);
+	LUNLOGV(rec->minor, __u32, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 
@@ -310,12 +327,12 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_objectv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->flags, __u32, ptr, end);
-	UNLOGV(rec->mode, __u32, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
-	UNLOGV(rec->namelen, __u32, ptr, end);
-	UNLOGV(rec->targetlen, __u32, ptr, end);
-	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
+	kml_unpack_version(&rec->old_objectv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	LUNLOGV(rec->flags, __u32, ptr, end);
+	LUNLOGV(rec->mode, __u32, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->namelen, __u32, ptr, end);
+	LUNLOGV(rec->targetlen, __u32, ptr, end);
+        UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 	UNLOGL(rec->name, char, rec->namelen, ptr, end);
 	UNLOGL(rec->target, char, rec->targetlen, ptr, end);
@@ -331,11 +348,11 @@
 	char *ptr = *buf;
 
-	UNLOGP(rec->old_objectv, struct presto_version, ptr, end);
-	UNLOGP(rec->new_objectv, struct presto_version, ptr, end);
-	UNLOGV(rec->flags, __u32, ptr, end);
-	UNLOGV(rec->mode, __u32, ptr, end);
-	UNLOGV(rec->pathlen, __u32, ptr, end);
-	UNLOGV(rec->namelen, __u32, ptr, end);
-	UNLOGV(rec->targetlen, __u32, ptr, end);
+	kml_unpack_version(&rec->old_objectv, &ptr, end);
+	kml_unpack_version(&rec->new_objectv, &ptr, end);
+	LUNLOGV(rec->flags, __u32, ptr, end);
+	LUNLOGV(rec->mode, __u32, ptr, end);
+	LUNLOGV(rec->pathlen, __u32, ptr, end);
+	LUNLOGV(rec->namelen, __u32, ptr, end);
+	LUNLOGV(rec->targetlen, __u32, ptr, end);
 	UNLOGL(rec->path, char, rec->pathlen, ptr, end);
 	UNLOGL(rec->name, char, rec->namelen, ptr, end);
@@ -385,4 +402,44 @@
 };
 
+int kml_unpack_prefix(struct kml_rec *rec, char **buf, char *end) 
+{
+	char *ptr = *buf;
+        int n;
+
+        UNLOGP(rec->prefix.hdr, struct kml_prefix_hdr, ptr, end);
+        rec->prefix.hdr->len     = NTOH__u32(rec->prefix.hdr->len);
+        rec->prefix.hdr->version = NTOH__u32(rec->prefix.hdr->version);
+        rec->prefix.hdr->pid     = NTOH__u32(rec->prefix.hdr->pid);
+        rec->prefix.hdr->auid    = NTOH__u32(rec->prefix.hdr->auid);
+        rec->prefix.hdr->fsuid   = NTOH__u32(rec->prefix.hdr->fsuid);
+        rec->prefix.hdr->fsgid   = NTOH__u32(rec->prefix.hdr->fsgid);
+        rec->prefix.hdr->opcode  = NTOH__u32(rec->prefix.hdr->opcode);
+        rec->prefix.hdr->ngroups = NTOH__u32(rec->prefix.hdr->ngroups);
+
+	UNLOGL(rec->prefix.groups, __u32, rec->prefix.hdr->ngroups, ptr, end);
+        for (n = 0; n < rec->prefix.hdr->ngroups; n++) {
+                rec->prefix.groups[n] = NTOH__u32(rec->prefix.groups[n]);
+        }
+
+	*buf = ptr;
+
+        return 0;
+}
+
+int kml_unpack_suffix(struct kml_rec *rec, char **buf, char *end) 
+{
+	char *ptr = *buf;
+
+	UNLOGP(rec->suffix, struct kml_suffix, ptr, end);
+        rec->suffix->prevrec   = NTOH__u32(rec->suffix->prevrec);
+        rec->suffix->recno    = NTOH__u32(rec->suffix->recno);
+        rec->suffix->time     = NTOH__u32(rec->suffix->time);
+        rec->suffix->len      = NTOH__u32(rec->suffix->len);
+
+	*buf = ptr;
+
+        return 0;
+}
+
 int kml_unpack(struct kml_rec *rec, char **buf, char *end)
 {
@@ -405,6 +462,10 @@
 	memset(rec, 0, sizeof(*rec));
 
-        UNLOGP(rec->prefix.hdr, struct kml_prefix_hdr, ptr, end);
-	UNLOGL(rec->prefix.groups, __u32, rec->prefix.hdr->ngroups, ptr, end);
+        err = kml_unpack_prefix(rec, &ptr, end);
+	if (err) {
+                printf("InterMezzo: %s: unpack_prefix failed: %d\n",
+                       __FUNCTION__, err);
+		return err;
+        }
 
         if (rec->prefix.hdr->opcode < 0  ||
@@ -420,5 +481,12 @@
 		return err;
         }
-	UNLOGP(rec->suffix, struct kml_suffix, ptr, end);
+
+        err = kml_unpack_suffix(rec, &ptr, end);
+	if (err) {
+                printf("InterMezzo: %s: unpack_suffix failed: %d\n",
+                       __FUNCTION__, err);
+		return err;
+        }
+
 
 	if (rec->prefix.hdr->len != rec->suffix->len) {

Index: presto.c
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/presto24/presto.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -U2 -r1.40 -r1.41
--- presto.c	7 May 2002 07:57:48 -0000	1.40
+++ presto.c	27 Sep 2002 00:43:16 -0000	1.41
@@ -629,7 +629,7 @@
                        struct inode * inode)
 {
-        presto_version->pv_mtime = cpu_to_le64((__u64)inode->i_mtime);
-        presto_version->pv_ctime = cpu_to_le64((__u64)inode->i_ctime);
-        presto_version->pv_size = cpu_to_le64((__u64)inode->i_size);
+        presto_version->pv_mtime = (__u64)inode->i_mtime;
+        presto_version->pv_ctime = (__u64)inode->i_ctime;
+        presto_version->pv_size  = (__u64)inode->i_size;
 }
 

Index: super.c
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/presto24/super.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -U2 -r1.39 -r1.40
--- super.c	25 Sep 2002 07:06:18 -0000	1.39
+++ super.c	27 Sep 2002 00:43:16 -0000	1.40
@@ -363,5 +363,5 @@
 
         printk(KERN_INFO "InterMezzo Kernel/Intersync communications " INTERMEZZO_VERSION
-               "[email protected]\n");
+               " [email protected]\n");
 
         status = presto_psdev_init();
@@ -415,7 +415,6 @@
 
 
-#define IVERSION "1.9.1"
-MODULE_AUTHOR("Peter J. Braam <[email protected]>");
-MODULE_DESCRIPTION("InterMezzo Kernel/Lento communications, version" IVERSION);
+MODULE_AUTHOR("Cluster Filesystems Inc. <[email protected]>");
+MODULE_DESCRIPTION("InterMezzo Kernel/Intersync communications " INTERMEZZO_VERSION);
 MODULE_LICENSE("GPL");
 

Index: vfs.c
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/presto24/vfs.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -U2 -r1.71 -r1.72
--- vfs.c	26 Jun 2002 07:35:06 -0000	1.71
+++ vfs.c	27 Sep 2002 00:43:16 -0000	1.72
@@ -288,8 +288,8 @@
 void izo_get_rollback_data(struct inode *inode, struct izo_rollback_data *rb)
 {
-        rb->rb_mode = cpu_to_le32((__u32)inode->i_mode);
-        rb->rb_rdev = cpu_to_le32((__u32)inode->i_rdev);
-        rb->rb_uid  = cpu_to_le64((__u64)inode->i_uid);
-        rb->rb_gid  = cpu_to_le64((__u64)inode->i_gid);
+        rb->rb_mode = (__u32)inode->i_mode;
+        rb->rb_rdev = (__u32)inode->i_rdev;
+        rb->rb_uid  = (__u64)inode->i_uid;
+        rb->rb_gid  = (__u64)inode->i_gid;
 }
 



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf