I suggest the following patch to solve a compiler warning for shifting beyond the size (a circumstance which cannot actually happen) :
--- src/dentry.c.ref 2012-09-04 07:52:54.000000000 +0200
+++ src/dentry.c 2012-09-13 17:15:25.969595000 +0200
@@ -191,7 +191,7 @@
inode->ino = (u64)stbuf->st_ino;
inode->ino = (u64)stbuf->st_ino |
- ((u64)stbuf->st_dev << (sizeof(ino_t) * 8));
+ ((u64)stbuf->st_dev << ((sizeof(ino_t) * 8) & 63));
/ Set timestamps /
inode->creation_time = timespec_to_wim_timestamp(&stbuf->st_mtim);
inode->last_write_time = timespec_to_wim_timestamp(&stbuf->st_mtim);
Thanks, I've made that change.
Unfortunately the assigning of a WIM inode number from an on-disk inode number in that function is a bit of a hack. The idea is, of course, that the device number will disambiguate files on multiple on-disk filesystems that share the same inode number. But if the inode number and device number don't fit into 64 bits, this can't be done without adding an extra field to the WIM inode.