// a, b = random bits, c = input and output
#define hashmix(a,b,c) \
- a=a-b; a=a-c; a=a^(c>>13); \
- b=b-c; b=b-a; b=b^(a<<8); \
- c=c-a; c=c-b; c=c^(b>>13); \
- a=a-b; a=a-c; a=a^(c>>12); \
- b=b-c; b=b-a; b=b^(a<<16); \
- c=c-a; c=c-b; c=c^(b>>5); \
- a=a-b; a=a-c; a=a^(c>>3); \
- b=b-c; b=b-a; b=b^(a<<10); \
- c=c-a; c=c-b; c=c^(b>>15);
+ a=a-b; a=a-c; a=a^(c>>13); \
+ b=b-c; b=b-a; b=b^(a<<8); \
+ c=c-a; c=c-b; c=c^(b>>13); \
+ a=a-b; a=a-c; a=a^(c>>12); \
+ b=b-c; b=b-a; b=b^(a<<16); \
+ c=c-a; c=c-b; c=c^(b>>5); \
+ a=a-b; a=a-c; a=a^(c>>3); \
+ b=b-c; b=b-a; b=b^(a<<10); \
+ c=c-a; c=c-b; c=c^(b>>15);
//namespace ceph {
#endif
}
};
-
+
#if defined(__CYGWIN__) || defined(DARWIN)
template<> struct rjhash<size_t> {
inline size_t operator()(const size_t x) const {
-// -*- mode:C; tab-width:8; c-basic-offset:8; indent-tabs-mode:t -*-
+// -*- mode:C; tab-width:8; c-basic-offset:8; indent-tabs-mode:t -*-
// vim: ts=8 sw=8 smarttab
#ifndef __RADOS_H
__le64 pgls_cookie, count;
};
};
- __le32 payload_len;
+ __le32 payload_len;
} __attribute__ ((packed));
/*
{
struct ceph_inode_info *ci;
- dout(10, "kick_flushing_caps mds%d\n", session->s_mds);
+ dout(10, "kick_flushing_caps mds%d\n", session->s_mds);
list_for_each_entry(ci, &session->s_cap_flushing, i_flushing_item) {
struct inode *inode = &ci->vfs_inode;
struct ceph_cap *cap;