From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2155) id 8F0A23857817; Thu, 19 Aug 2021 14:12:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8F0A23857817 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: return better inode numbers for block device entries in /proc/sys X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/master X-Git-Oldrev: cf86601d987b717285a85b2d0315745aa5d63bc8 X-Git-Newrev: ad35bfbb0f527c6217b7cd6070d62785fb7f0025 Message-Id: <20210819141244.8F0A23857817@sourceware.org> Date: Thu, 19 Aug 2021 14:12:44 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Aug 2021 14:12:44 -0000 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=ad35bfbb0f527c6217b7cd6070d62785fb7f0025 commit ad35bfbb0f527c6217b7cd6070d62785fb7f0025 Author: Corinna Vinschen 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 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;