#define ceph_file_layout_period(l) (l.fl_object_size * l.fl_stripe_count)
/*
- * placement group
+ * placement group.
+ * we encode this into one __le64.
*/
#define CEPH_PG_TYPE_REP 1
#define CEPH_PG_TYPE_RAID4 2
-
union ceph_pg {
__u64 pg64;
struct {
} __attribute__ ((packed));
struct ceph_frag_tree_head {
- __u32 nsplits;
- __s32 splits[0];
+ __le32 nsplits;
+ __le32 splits[0];
} __attribute__ ((packed));
struct ceph_mds_reply_inode {
__le64 version;
struct ceph_file_layout layout;
struct ceph_timespec ctime, mtime, atime;
- __u32 mode, uid, gid;
- __u32 nlink;
- __u64 size, max_size;
- __u32 rdev;
+ __le32 mode, uid, gid;
+ __le32 nlink;
+ __le64 size, max_size;
+ __le32 rdev;
struct ceph_frag_tree_head fragtree;
} __attribute__ ((packed));
/* followed by frag array, then symlink string */
} __attribute__ ((packed));
struct ceph_mds_reply_dirfrag {
- __u32 frag;
- __s32 auth;
+ __le32 frag;
+ __le32 auth;
__u8 is_rep;
- __u32 ndist;
- __u32 dist[];
+ __le32 ndist;
+ __le32 dist[];
} __attribute__ ((packed));
/* file access modes */
struct ceph_eversion reassert_version;
/* semi-hack, fix me */
- __u32 shed_count;
+ __le32 shed_count;
struct ceph_osd_peer_stat peer_stat;
} __attribute__ ((packed));
ctime.decode_timeval(&e.ctime);
mtime.decode_timeval(&e.mtime);
atime.decode_timeval(&e.atime);
- mode = e.mode;
- uid = e.uid;
- gid = e.gid;
- nlink = e.nlink;
- size = e.size;
- max_size = e.max_size;
- rdev = e.rdev;
-
- int n = e.fragtree.nsplits;
+ mode = le32_to_cpu(e.mode);
+ uid = le32_to_cpu(e.uid);
+ gid = le32_to_cpu(e.gid);
+ nlink = le32_to_cpu(e.nlink);
+ size = le64_to_cpu(e.size);
+ max_size = le64_to_cpu(e.max_size);
+ rdev = le32_to_cpu(e.rdev);
+
+ int n = le32_to_cpu(e.fragtree.nsplits);
while (n) {
__u32 s, by;
::_decode_simple(s, p);
in->inode.ctime.encode_timeval(&e.ctime);
in->inode.mtime.encode_timeval(&e.mtime);
in->inode.atime.encode_timeval(&e.atime);
- e.mode = in->inode.mode;
- e.uid = in->inode.uid;
- e.gid = in->inode.gid;
- e.nlink = in->inode.nlink;
- e.size = in->inode.size;
- e.max_size = in->inode.max_size;
- e.rdev = in->inode.rdev;
- e.fragtree.nsplits = in->dirfragtree._splits.size();
+ e.mode = cpu_to_le32(in->inode.mode);
+ e.uid = cpu_to_le32(in->inode.uid);
+ e.gid = cpu_to_le32(in->inode.gid);
+ e.nlink = cpu_to_le32(in->inode.nlink);
+ e.size = cpu_to_le64(in->inode.size);
+ e.max_size = cpu_to_le64(in->inode.max_size);
+ e.rdev = cpu_to_le32(in->inode.rdev);
+ e.fragtree.nsplits = cpu_to_le32(in->dirfragtree._splits.size());
::_encode_simple(e, bl);
for (map<frag_t,int32_t>::iterator p = in->dirfragtree._splits.begin();
p != in->dirfragtree._splits.end();
void set_peer_stat(const osd_peer_stat_t& stat) { head.peer_stat = stat; }
const ceph_osd_peer_stat& get_peer_stat() { return head.peer_stat; }
- void inc_shed_count() { head.shed_count++; }
- int get_shed_count() { return head.shed_count; }
+ void inc_shed_count() { head.shed_count = cpu_to_le32(get_shed_count() + 1); }
+ int get_shed_count() { return le32_to_cpu(head.shed_count); }