Hi everybody!
We have developed a cluster filesystem which has been used
for many years, but we have always had problems with Finder. We mount/unmount
our filesystem in a daemon using the mount/unmount(2) API calls which do not
update the Finder. The volume is successfully mounted/unmounted and can be
accessed in Terminal, but in Tiger the Finder does not show it every time. At
first our FS was a local one and the Finder sometimes showed the volume and
sometimes didn’t. Usually if the Volumes folder was browsed manually
after the volume had been mounted, the Finder showed it. In most cases it also
showed the volume after “disktool -r” command or relaunching Finder,
but it was not consistent. Then we tried to make our FS a network one but the behaviour
became even worse until we found some obsolete API (DiskArbDiskAppearedWithMountpointPing_auto) which updates
the Finder and solved the problem. In the documentation of this API was written
that local filesystems should have bundles which should be enough for the
Finder to automatically show them, while the network ones should use this
deprecated API until Apple comes up with a better solution of the problem.
Unfortunately we could not implement a bundle because there is virtually no
documentation by Apple about how to do it, so we decided to stick with the
network FS solution, which seemed to work well in Tiger.
Then Leopard was released and the problem appeared again.
Obviously the deprecated API in Leopard doesn’t do anything and if the FS
is a network one, we couldn’t find a way to show a mounted volume in the
Finder. If the FS is local the volume is shown on the desktop and in Finder,
but looks empty, while it is not. Maybe this is another problem, but in Tiger
we have seen the volume icon stay in Finder and report to be a “broken
alias”, which is a similar behaviour.
What should a FS support in Leopard so that the volumes are correctly
shown in Finder? Is there some documentation about FS bundles in Leopard and
are they enough if the FS is a local one? And what about the network ones? Any
information will be highly appreciated because we are stuck on this issue.