Roland Mainz
2013-07-15 23:23:44 UTC
[snip]
src/cmd/ksh93 (besides globbing and directory reading) still uses
|sfopen()| ... are there ant objections that I switch them over to
|sfopenat()| with this patch already (we have to do it anyway in the
future to wean-off Shell_t objects from relying on the global cwd) ?
No objection here. IMO all calls to obtain a file descriptor should goAttached (as "astksh20130628_solaris_fixes003.diff.txt") is an updated
version of the patch which fixes the issues which came up during code
- Fixed error handling in cd(1) for NFSv4/CIFS/SMBFS XATTR directories
- Opening the history files now goes through the
|*at()|-emulation&&intercept code to make sure extra flags+signal
restart is handled properly (tested)
BTW: No, going through the |*at()| emulation is not slower unless the
|fd| argument in |openat(fd,...)| differs between individual calls
(well... at least the code in
http://svn.nrubsig.org/svn/people/gisburn/code/openat_emu/openat_emu.c
did maintain a cache (which is valid until |fchdir()|/|chdir()| is
called) and AFAIK the |*at()|-emulation in libast should do the same).
... one remaining issue came up during review... some code inversion of the patch which fixes the issues which came up during code
- Fixed error handling in cd(1) for NFSv4/CIFS/SMBFS XATTR directories
- Opening the history files now goes through the
|*at()|-emulation&&intercept code to make sure extra flags+signal
restart is handled properly (tested)
BTW: No, going through the |*at()| emulation is not slower unless the
|fd| argument in |openat(fd,...)| differs between individual calls
(well... at least the code in
http://svn.nrubsig.org/svn/people/gisburn/code/openat_emu/openat_emu.c
did maintain a cache (which is valid until |fchdir()|/|chdir()| is
called) and AFAIK the |*at()|-emulation in libast should do the same).
src/cmd/ksh93 (besides globbing and directory reading) still uses
|sfopen()| ... are there ant objections that I switch them over to
|sfopenat()| with this patch already (we have to do it anyway in the
future to wean-off Shell_t objects from relying on the global cwd) ?
through openat() because the reasons you've stated, plus the reason
that open() on such platforms is a libc wrapper which calls
openat(AT_FDCWD,name,flags,...).
patch to pass |shp->pwdfd| down to bulitins, dgk's signal fixes, the
MADV_HUGEPAGE patch etc. etc. and make a new alpha from that, please ?
I still have more patches queued (some for largepages/hugepages on
Solaris/Linux, some for largepage vs. sfio, some for more
|*at()|'ification etc.) but would prefer working from a new alpha
instead of piling my patches even higher.
BTW: Is Phong back from his vacation ?
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)