On 05/18/02 17:41, Ian Dowse wrote:
> In message <[EMAIL PROTECTED]>, Terry Lambert writes:
>> I think the reason for the "if" is to keep the df from hanging
>> indefinitely, particularly when you give it an explicit list.
> No, I believe the "if (vfslist != NULL)" code was there to reduce
> the maximum column widths to those necessary for an explicit list
> of filesystems rather than using the maximum widths for all
> filesystems. The regetmntinfo() call before the "if" has already
> performed any operations that could hang indefinitely, so it makes
> sense to unconditionally use these up-to-date results instead of
> the potentially stale list from getmntinfo(..., MNT_NOWAIT).
That exactly matches my understanding of the code, the test for vfslist !=
NULL was there only to prevent recalculating the field widths when they
"couldn't have changed". Except it turns out they could have changed for
other reasons than a non-null vfslist.
Terry, the issue of hanging (WAIT versus NOWAIT) is controlled by the -n
(nflag) option, and by whether you've specifically named filesystems on the
command line (indicating you're willing to wait for those filesystems). The
vfslist stuff is related to the -t option (filter the list down to
filesystems of a given type). There's no relationship between the vfslist
and waiting or not.
-- Ian (the other one)
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message