Hi Jeremy,

your patch is basically fine, and I was about to push it, when I
realized that I don't quite understand this:

On Feb 12 10:56, Jeremy Drake via Cygwin-patches wrote:
>  struct mntent *
>  mount_info::getmntent (int x)
>  {
>    if (x < 0 || x >= nmounts)
> -    return cygdrive_getmntent ();
> -
> +    {
> +      struct mntent *ret;
> +      /* de-duplicate against explicit mount entries */
> +      while ((ret = cygdrive_getmntent ()))
> +     {
> +       for (int i = 0; i < nmounts; ++i)
> +         {
> +           int cmp = strcmp (ret->mnt_dir, 
> mount[posix_sorted[i]].posix_path);
> +           if (!cmp && strcasematch (ret->mnt_fsname,
> +                                     mount[posix_sorted[i]].native_path))
> +             goto cygdrive_mntent_continue;
> +           else if (cmp > 0)
> +             break;
> +         }
> +       break;
> +cygdrive_mntent_continue:;
> +     }
> +      return ret;
> +    }

What exactly is de-duplicated here?

I have a drive mounted under C:\drvmount.
I create an additional mount entry:

  $ mount C:/drvmount /home/corinna/drv

If I call mount, I see two mount entries, both pointing to the
/home/corinna/drv dir:

  $ mount | grep drvmount
  C:/drvmount on /home/corinna/drv type ntfs (binary,user)
  C:/drvmount on /home/corinna/drv type ntfs (binary,posix=0,noumount,auto)

The first is the explicit mount, the second is the cygdrive entry.
If I disable the above de-dup code, the result is the same.

However, either way, both point to the explicit mount point.
Wouldn't it be helpful to see /cygdrive/c/drvmount?

  C:/drvmount on /home/corinna/drv type ntfs (binary,user)
  C:/drvmount on /cygdrive/c/drvmount type ntfs (binary,posix=0,noumount,auto)


Thanks,
Corinna

Reply via email to