Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3310f754 authored by Amon Ott's avatar Amon Ott Committed by Sage Weil
Browse files

ceph: fix 32-bit ino numbers



Fix 32-bit ino generation to not always be 1.

Signed-off-by: default avatarAmon Ott <a.ott@m-privacy.de>
parent 38d6453c
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -346,9 +346,10 @@ static inline struct ceph_vino ceph_vino(struct inode *inode)
 * x86_64+ino32  64                     32
 * x86_64        64                     64
 */
static inline u32 ceph_ino_to_ino32(ino_t ino)
static inline u32 ceph_ino_to_ino32(__u64 vino)
{
	ino ^= ino >> (sizeof(ino) * 8 - 32);
	u32 ino = vino & 0xffffffff;
	ino ^= vino >> 32;
	if (!ino)
		ino = 1;
	return ino;
@@ -359,11 +360,11 @@ static inline u32 ceph_ino_to_ino32(ino_t ino)
 */
static inline ino_t ceph_vino_to_ino(struct ceph_vino vino)
{
	ino_t ino = (ino_t)vino.ino;  /* ^ (vino.snap << 20); */
#if BITS_PER_LONG == 32
	ino = ceph_ino_to_ino32(ino);
	return ceph_ino_to_ino32(vino.ino);
#else
	return (ino_t)vino.ino;
#endif
	return ino;
}

/*