Add S_IFTRIGGER to st_mode [PSARC/2007/563 FastTrack timeout 10/04/2007]
James Carlson
james.d.carlson at sun.com
Fri Oct 5 11:47:05 PDT 2007
Tom Haynes writes:
> The issue here is that by the time we get to the fstatat() call, the
> mount has already
> occurred. It isn't just the opendir() call which forces the underlying
> vnops to trigger
> the mount. Whatever call we make to get our hands on the file descriptor
> will
> force the mount to occur.
The idea was to have the very first status check of the file be
fstatat(), using the 'fd' parameter set to AT_FDCWD, and the 'path'
presented to fstatat() would be the one you're just about to use for
opendir().
Then you can pass in the new AT_TRIGGER (or whatever you want to call
it; prepend with "_" if you want to keep it private until the
standards organizations can act), and fstatat() can trigger the
automount if needed before reading and returning the stat structure.
I view this as a security improvement, as it brings the
stat-opendir-fstat sequence into line for the special case of
autofs/nfs.
Your proposal is roughly equivalent to the current code. The current
code just does a string compare to see if the node is autofs/nfs, and
the fix you've proposed is to add a flag that has exactly equivalent
semantics and simply avoids the ugly string compares.
Thus, while I see that your flag is indeed an improvement over the
current code (it makes the existing test much cleaner), and I'm not
opposed to it on those grounds, I just think it could be better. The
only question I have is whether AT_TRIGGER is too hard to implement.
I can't answer that question, because I don't know this code well.
I'd like to know from you (or from any expert on the code in question)
whether this is a reasonable possibility.
If it's not, then I'm fine with your original change plus an RFE for
the stat-with-trigger feature, because I think it's a cleaner way to
go.
--
James Carlson, Solaris Networking <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677
More information about the opensolaris-arc
mailing list