object_t() : ino(0), bno(0), rev(0) {}
object_t(uint64_t i, uint32_t b) : ino(i), bno(b), rev(0) {}
object_t(uint64_t i, uint32_t b, uint32_t r) : ino(i), bno(b), rev(r) {}
-};
+} __attribute__ ((packed));
inline bool operator==(const object_t l, const object_t r) {
return memcmp(&l, &r, sizeof(l)) == 0;
pobject_t() : volume(0), rank(0) {}
pobject_t(object_t o) : volume(0), rank(0), oid(o) {} // this should go away eventually
pobject_t(uint16_t v, uint16_t r, object_t o) : volume(v), rank(r), oid(o) {}
-};
+} __attribute__ ((packed));
inline ostream& operator<<(ostream& out, const pobject_t o) {
return out << o.volume << '/' << o.rank << '/' << o.oid;