diff --git a/src/fs_inode.hpp b/src/fs_inode.hpp index 683a83f00..fac1b814a 100644 --- a/src/fs_inode.hpp +++ b/src/fs_inode.hpp @@ -19,6 +19,7 @@ #ifndef __FS_INODE_HPP__ #define __FS_INODE_HPP__ +#include #include namespace fs @@ -34,12 +35,10 @@ namespace fs void recompute(struct stat &st) { - /* - Some OSes have 32-bit device IDs, so box this up first. - This does also presume a 64-bit inode value. - */ - uint64_t st_dev = (uint64_t)st.st_dev; - st.st_ino |= (st_dev << 32); + if(sizeof(st.st_ino) == 4) + st.st_ino |= ((uint32_t)st.st_dev << 16); + else + st.st_ino |= ((uint64_t)st.st_dev << 32); } } }