storing symlink in extended attribute (on ntfs)

egor duda deo@logos-m.ru
Thu May 10 09:16:00 GMT 2001


Hi!

Thursday, 10 May, 2001 egor duda deo@logos-m.ru wrote:

ed>   i've modified cygwin slightly to store symlink value in shortcut's
ed> extended attribute, and to try to get it from there. my (rough)
ed> benchmarking shows 30%-50% speedup in symlink resolution code.

[...]

ed> the patch is only proof-of-concept. of course, if will be cleaned up
ed> (work only on ntfs, better error checking, etc.) if we decide we need
ed> such functionality in cygwin. 

here's ready-to-go patch.
2001-05-10  Egor Duda  <deo@logos-m.ru>

        * security.h (NTWriteEA): Change prototype.
        * ntea.cc (NTReadEA): Don't check for global ntea setting, now
        it's caller responsibility.
        (NTWriteEA): Ditto.
        * path.cc (symlink): If symlink is created on NTFS, store its
        value in EA.
        (symlink_info::check): Get symlink value from EA.
        * path.h: Define SYMLINK_EA_NAME
        * security.cc (get_file_attribute): Read attribute from EA only 
        if 'ntea' is enabled.
        (set_file_attribute): Ditto.

Egor.            mailto:deo@logos-m.ru ICQ 5165414 FidoNet 2:5020/496.19
symlink-in-ea-2.diff
symlink-in-ea-2.ChangeLog
force-systemroot-2.ChangeLog

-------------- next part --------------
2001-05-10  Egor Duda  <deo@logos-m.ru>

	* environ.cc (append_to_winenv): New function.
	(winenv): Always add SYSTEMDRIVE and SYSYEMROOT to win32-style
	environment.
-------------- next part --------------
2001-05-10  Egor Duda  <deo@logos-m.ru>

	* security.h (NTWriteEA): Change prototype.
	* ntea.cc (NTReadEA): Don't check for global ntea setting, now
	it's caller responsibility.
	(NTWriteEA): Ditto.
	* path.cc (symlink): If symlink is created on NTFS, store its
	value in EA.
	(symlink_info::check): Get symlink value from EA.
	* path.h: Define SYMLINK_EA_NAME
	* security.cc (get_file_attribute): Read attribute from EA only 
	if 'ntea' is enabled.
	(set_file_attribute): Ditto.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: symlink-in-ea-2.diff
Type: text/x-diff
Size: 4150 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20010510/55e3e21e/attachment.bin>


More information about the Cygwin-patches mailing list