On Thu, Nov 25, 2004 at 09:45:25AM +1100, Tim Nelson wrote:
Ok, so the sequence in find is currently (in pseudo-perl):
-----------
$old = stat $dir;
chdir $dir;
$new = stat $dir;
wd_sanity_check($old, $new);
-----------
No, we lstat(".") rather than $dir.
If your information is correct, then what we need to do is
something like:
-----------
$tmp = $dir . '.';
$old = stat $tmp;
chdir $dir;
$new = stat $tmp;
wd_sanity_check($old, $new);
-----------
Would that do it, or am I missing something?
What we need to do - and what we do do - is this -
$tmp = <base name of subdirectory>;
$old = lstat $tmp; /* line A */
chdir $dir; /* line B */
$new = lstat "."; /* line C */
wd_sanity_check($old, $new);
Assuming that accessing /mount/SUBDIR/. also triggers a mount on
the other OSs, the example above should work on everything. If it
doesn't, we might have to do two stats the first time, one on $dir and
then one on $tmp.
On Solaris, the filesystem gets mounted at either line B or C (I'm not
sure which). Hence wd_sanity_check() needed to be changed to
understand why $old differs from $new in this case.