From ad35bfbb0f527c6217b7cd6070d62785fb7f0025 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 19 Aug 2021 16:08:34 +0200 Subject: [PATCH] Cygwin: return better inode numbers for block device entries in /proc/sys Commit 3434d35a64736f0b77a12f61784c2caa33ac44cf fixed a problem when accessing block devices via their /proc/sys/Device entries. This changed the way stat info is generated for these devices, resulting in identical inode numbers for all block devices under /proc/sys/Device. This patch fixes that by faking a device number for these devices, just as before. Fixes: 3434d35a6473 ("Cygwin: Fix access to block devices below /proc/sys.") Signed-off-by: Corinna Vinschen --- winsup/cygwin/fhandler_raw.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/winsup/cygwin/fhandler_raw.cc b/winsup/cygwin/fhandler_raw.cc index 7c341d895..8d3314465 100644 --- a/winsup/cygwin/fhandler_raw.cc +++ b/winsup/cygwin/fhandler_raw.cc @@ -45,6 +45,8 @@ fhandler_dev_raw::fstat (struct stat *buf) else buf->st_mode = S_IFBLK | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH; + if (get_major () == DEV_SD_HIGHPART_END && get_minor () == 9999) + buf->st_ino = get_ino (); buf->st_uid = geteuid32 (); buf->st_gid = getegid32 (); buf->st_nlink = 1;