DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 51IJg0PI3598173
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 51IJg0PI3598173
Authentication-Results: delorie.com;
	dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=YekLNIvt
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A3303858429
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1739907719;
	bh=LkssrlKgT9XG4UDPH6lFVrx8H3X5vrdYsgz7x8xxnIA=;
	h=Date:To:Subject:In-Reply-To:References:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=YekLNIvtae5nPlvg+DIIsOFX5NEj0vHQOBA7j991ASPuaX3Js0OWlnwpYXY9+38Bv
	 tpbpz7tqSSQWu5bIaF6cIYEPZCtKPwnVK4X5qUdGy3xrDJoPzzJzM4KQzhHzgKbIgR
	 tw2moGYE+3HuduxpuQ2vn9LLJNbcpX0/VJ/7i8wo=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 822B53858401
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 822B53858401
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1739907686; cv=none;
 b=l0CdZ5gjYdsNWaj+EJatG2onkpRgvOvEZvcqqLiZBc9+yLTYnj6ZynAzl4joDxvp7W1xYlNtVqgd7KqcKdkumWwREG+mjYfvmtJ8IR/Tgf86qBp+U7mqgChuSFmLCM4OMPmm+TJMJMccq5O3E1PBB5zddsjLJpfi5usZVmO0POw=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1739907686; c=relaxed/simple;
 bh=ifN9AKTWEYW4Fsa5+003JD8gu2FgZ51prH0c4zrn+QE=;
 h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;
 b=XZKaPBxbCkyLhAiYnw0wHEHI4mjDsp+YKDbMylUo2KHnJmu73EaQS3d45FjuJwoIsdxR1qW4M+178gNKscSStXadpxZmmynl0vmntDnQqIrnS1h1Ho5imM3sGHIMU0YLvsqWPNbXtqNX+8BMlEaPfNRqKla0yixfNI9mBalVMaY=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 822B53858401
Date: Tue, 18 Feb 2025 11:41:24 -0800 (PST)
X-X-Sender: jeremyd@resin.csoft.net
To: Corinna Vinschen via Cygwin <cygwin@cygwin.com>
Subject: Re: [regression-3.6] df -k on Cygwin 3.6 no longer lists all
 filesystems
In-Reply-To: <Z7TfpSKvHtBxPd9f@calimero.vinschen.de>
Message-ID: <7fde8a02-a591-e86c-8699-f457bef86134@jdrake.com>
References: <CALXu0UfOeEOsp4=zEa3Q3-9GjCmcQC6RCwdy2QEFA2uVvqRLhg@mail.gmail.com>
 <e8ab61d0-9893-6c20-e234-f58355d30189@jdrake.com>
 <Z7TZkWITTUxxnhf8@calimero.vinschen.de>
 <328ed80b-aadb-262b-fd7b-37d0cc04c88e@jdrake.com>
 <Z7TfpSKvHtBxPd9f@calimero.vinschen.de>
MIME-Version: 1.0
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
Precedence: list
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Jeremy Drake via Cygwin <cygwin@cygwin.com>
Reply-To: Jeremy Drake <cygwin@jdrake.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cygwin-bounces~archive-cygwin=delorie.com@cygwin.com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>

On Tue, 18 Feb 2025, Corinna Vinschen via Cygwin wrote:

> On Feb 18 11:19, Jeremy Drake via Cygwin wrote:
> > On Tue, 18 Feb 2025, Corinna Vinschen via Cygwin wrote:
> >
> > > Yep. Are you going to create a patch?
> >
> > I'm not seeing a particularly clean way to do this.  Bring back
> > available_drives, mask off bits when we see the corresponding drive root
> > from dos_drive_mappings, and return those drive letters whose bits are
> > still set at the end?
>
> No, I wouldn't do that.
>
> IMHO, the cleanest way to bring this back is to extend
> dos_drive_mappings::dos_drive_mappings():
>
> - Prior to the FindFirstVolumeW/FindNextVolumeW loop, prepend another
>   loop iterating over GetLogicalDrives() or GetLogicalDriveStringsW().
>   In the loop, call QueryDosDevice and add this info to
>   dos_drive_mappings, just as in the FindVolume loop.
>
> - In the second loop, simply ignore all mounts mounted to just a drive
>   letter (because the first loop already added them all).
>
> Makes sense?

The second loop would have to go back over the list created by the first
loop, to see if the volume it's trying to add already has an entry, and if
so extend its dosmount linked list with additional (non-drive-letter
roots) mounts for that volume.  I guess it only needs to do that if there
are any volumes which have both drive-letter-root AND
non-drive-letter-root mounts, so that's not TOO bad.

I'll try to make a patch for this.

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple
