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