cvs commit: src/usr.bin/locate/locate

Stefan Esser se at
Tue Oct 16 10:10:09 PDT 2007

Ceri Davies schrieb:
> On Mon, Oct 15, 2007 at 10:09:19PM +0000, Stefan Esser wrote:
>> se          2007-10-15 22:09:19 UTC
>>   FreeBSD src repository
>>   Modified files:
>>     usr.bin/locate/locate 
>>   Log:
>>   Make the updatedb script installed as /usr/libexec/locate.updatedb
>>   inspect all local file systems, not only ufs and ext2fs. A number
>>   of local file systems has been added over time, and at least zfs
>>   has the potential to become a popular choice. Without this change
>>   a ZFS root file system causes the script to ignore all file-systems
>>   and leads to an empty locate db. (An alternative is to add all the
>>   relevant file systems individually, which means that at least zfs,
>>   xfs, ntfs, ntfs-3g, msdosfs should be added, probably more).
> This now includes /dev, /dev/fd, /proc, /compat/linux/proc, CD-ROMs and DVDs
> as well as duplicating everything in nullfs mounts, all of which are probably
> undesirable -- well, they are undesirable to me; whether they are to
> others is the question ;-).

Ok, thank you for the information. I did not notice this in my tests.

I'm not sure what the "local" pseudo fs-type is meant to be used for.
Currently it appears to be identical to "not-remote" (which is what
the locate db update tries to avoid, due to high network load and
scan time).

I plan to fix this within the next 24 hours (if anybody thinks it needs
to be backed-out immediately, I'm willing to do this, but I'd rather
put in the correct fix instead.

Two possibilities: We could have another pseudo fs-type in find, which
selects "real" file systems (and skips devfs, procfs, fdescfs, nullfs
and probably more). Scanning of removable devices is dubious, too,
independently of their file system. By selecting "local" and "disk
based" file systems (which would omit not only the pseudo file-systems
and nullfs, but also cd9660 and udf), no specific file systems needed
to be put into the script (and find would have the knowledge).

The second possibility is to extend the list in the update script. It
needs to contain at least:

	ufs ext2fs zfs

and probably also:

	xfs msdosfs ntfs ntfs-3g (?)

Did I forget any?

In fact, I'd rather enter "ufs ext2fs zfs xfs msdosfs ntfs" right now,
instead of relying on the pseudo-fs definition in find, now that I think
about it.

Any opinions or comments?

> Also, the example in /etc/locate.rc should be updated to avoid
> misleading users into thinking that ufs is the only filesystem searched
> (granted, this was wrong before).

I'll fix this at the same time, but want to wait a few hours for some

Regards, STefan

More information about the cvs-src mailing list