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