FAT32 support (was: [RFC] Handle process token groups in server/file.c::sd_to_mode)

Ben Peddell klightspeed at netspace.net.au
Thu Nov 19 13:58:46 CST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Paul Chitescu wrote:
> How should server/file.c sd_to_mode() deal with filesystems that don't support 
> full POSIX ownership and access permissions? It is quite popular to mount FAT 
> filesystems - either from a removable media or a partition shared with a 
> Windows installation.

FAT32 support

To support this, I think the following would need to be done:

* Possibly split out and extended the filesystem type autodetection code
in dlls/ntdll/file.c::get_device_info() to autodetect the filesystem's
ability to hold ACLs

* Implement NtQueryVolumeInformationFile(FileFsAttributeInformation)
  - this has flags such as:
    * FILE_PERSISTENT_ACLS: Persistent ACLs (NTFS vs FAT32),
    * FILE_CASE_SENSITIVE_SEARCH: case-sensitive search (POSIX)
  - this also has the name of the filesystem (e.g. NTFS, FAT32).

* Implement the honouring of FILE_PERSISTENT_ACLS in
NtQuerySecurityObject, NtSetSecurityObject

* Possibly add a filesystem type configuration option to winecfg
(separate to media type).

* Possibly honour the media and filesystem type settings as configured
by winecfg.


> Furthermore, there could be symlinks to such files so filesystem capability 
> should be detected somehow from the file itself.

Volume Mount Point support

* Possibly extend dosdevices to include devices for Volume Mount Points.

* Possibly implement detection of symbolic links leading to mount points
as volume mount points - i.e. create \Device entries for mount points,
and redirect Volume Mount Point targets to those devices.



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAksFo3YACgkQTHDAI68NsunoigCfTQQQI6UpD8kCOBL5G83hzjgh
ahMAniPZq9CsVOnZHyko/1Hucc362Wql
=oWXW
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list