X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fadd_image.c;h=133540aa838766de74ba60d3cac3711a909ca1f0;hp=ed8bae23d2a86e36774a1ed19e3c92f4847a2ec2;hb=399e095d7d2e245634b53d7771217bd7614347a3;hpb=674149bc5544b9614a2e4a4f51f7d550ba8104aa diff --git a/src/add_image.c b/src/add_image.c index ed8bae23..133540aa 100644 --- a/src/add_image.c +++ b/src/add_image.c @@ -675,11 +675,15 @@ static int build_dentry_tree(struct wim_dentry **root_ret, inode->i_last_write_time = unix_timestamp_to_wim(root_stbuf.st_mtime); inode->i_last_access_time = unix_timestamp_to_wim(root_stbuf.st_atime); #endif - if (sizeof(ino_t) >= 8) - inode->i_ino = (u64)root_stbuf.st_ino; - else - inode->i_ino = (u64)root_stbuf.st_ino | - ((u64)root_stbuf.st_dev << ((sizeof(ino_t) * 8) & 63)); + /* Leave the inode number at 0 for directories. */ + if (!S_ISDIR(root_stbuf.st_mode)) { + if (sizeof(ino_t) >= 8) + inode->i_ino = (u64)root_stbuf.st_ino; + else + inode->i_ino = (u64)root_stbuf.st_ino | + ((u64)root_stbuf.st_dev << + ((sizeof(ino_t) * 8) & 63)); + } inode->i_resolved = 1; if (add_image_flags & WIMLIB_ADD_IMAGE_FLAG_UNIX_DATA) { ret = inode_set_unix_data(inode, root_stbuf.st_uid,