diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp index ab43eaafc7..69e84c8e77 100644 --- a/src/system/kernel/fs/vfs.cpp +++ b/src/system/kernel/fs/vfs.cpp @@ -4403,6 +4403,7 @@ vfs_stat_vnode(struct vnode *vnode, struct stat *stat) if (status == B_OK) { stat->st_dev = vnode->device; stat->st_ino = vnode->id; + stat->st_rdev = -1; } return status; @@ -4418,6 +4419,14 @@ vfs_stat_node_ref(dev_t device, ino_t inode, struct stat *stat) return status; status = FS_CALL(vnode, read_stat, stat); + + // fill in the st_dev and st_ino fields + if (status == B_OK) { + stat->st_dev = vnode->device; + stat->st_ino = vnode->id; + stat->st_rdev = -1; + } + put_vnode(vnode); return status; } @@ -5973,6 +5982,7 @@ common_read_stat(struct file_descriptor *descriptor, struct stat *stat) if (status == B_OK) { stat->st_dev = vnode->device; stat->st_ino = vnode->id; + stat->st_rdev = -1; } return status; @@ -6011,6 +6021,7 @@ common_path_read_stat(int fd, char *path, bool traverseLeafLink, if (status == B_OK) { stat->st_dev = vnode->device; stat->st_ino = vnode->id; + stat->st_rdev = -1; } put_vnode(vnode);