- stbuf->st_mode = inode_default_unix_mode(inode);
- stbuf->st_uid = ctx->default_uid;
- stbuf->st_gid = ctx->default_gid;
- if (ctx->mount_flags & WIMLIB_MOUNT_FLAG_UNIX_DATA) {
- struct wimlib_unix_data unix_data;
- if (inode_get_unix_data(inode, &unix_data, NULL) == 0) {
- stbuf->st_uid = unix_data.uid;
- stbuf->st_gid = unix_data.gid;
- stbuf->st_mode = unix_data.mode;
- }
+ if ((ctx->mount_flags & WIMLIB_MOUNT_FLAG_UNIX_DATA) &&
+ inode_has_unix_data(inode))
+ {
+ stbuf->st_uid = inode->i_unix_data.uid;
+ stbuf->st_gid = inode->i_unix_data.gid;
+ stbuf->st_mode = inode->i_unix_data.mode;
+ } else {
+ stbuf->st_uid = ctx->default_uid;
+ stbuf->st_gid = ctx->default_gid;
+ stbuf->st_mode = inode_default_unix_mode(inode);