[newlib-cygwin] Cygwin: return better inode numbers for block device entries in /proc/sys
Corinna Vinschen
corinna@sourceware.org
Thu Aug 19 14:12:44 GMT 2021
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=ad35bfbb0f527c6217b7cd6070d62785fb7f0025
commit ad35bfbb0f527c6217b7cd6070d62785fb7f0025
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Thu Aug 19 16:08:34 2021 +0200
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 <corinna@vinschen.de>
Diff:
---
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;
More information about the Cygwin-cvs
mailing list