Hello Folks,
I've gotten my UDF FS working for the most part, as a kernel plugin.
When an appropriately formatted UDF disk is inserted, my FS takes it
over and mounts it.
I've run into a bit of a problem with Eject though, and I'm not sure
what direction to go to resolve it.
The problem is that eject works sometimes, and not others.
If you eject the disk with Disk Utility, the volume is unmounted and
the disk is ejected correctly.
If you eject the disk with Finder, the userland daemon exits as
expected, but the icon does not disappear from the desktop (until it
is clicked), and does not disappear from the sidebar at all. If you
then attempt to eject it using disk utility, the eject works, but you
get an error message indicating that you removed the disk incorrectly
(the "Device Removal" error dialog).
One odd thing that I noticed was the output from "disktool list"
> The-Dark-Side:~ rona$ disktool list
> ***Disk Appeared ('/Volumes/UDF_102?owner=0',Mountpoint = '/Volumes/
> UDF_102', fsType = '', volName = '')
> ***Disk Appeared ('disk1',Mountpoint = '/Volumes/UDF_102', fsType =
> 'SAI_udf', volName = 'UDF_102')
> ***Disk Appeared ('disk0',Mountpoint = '', fsType = '', volName = '')
> ***Disk Appeared ('disk0s1',Mountpoint = '', fsType = '', volName =
> '')
> ***Disk Appeared ('disk0s2',Mountpoint = '/', fsType = 'hfs',
> volName = 'Mac OS X.4')
> ***Disk Appeared ('disk0s3',Mountpoint = '/Volumes/Mac OS X.5',
> fsType = 'hfs', volName = 'Mac OS X.5')
> ***Disk Appeared ('disk0s4',Mountpoint = '/Volumes/Expanse', fsType
> = 'hfs', volName = 'Expanse')
> ***Notifications Complete for type 1
As you can see, the /Volumes/UDF_102 mountpoint is listed twice,
first with no device association, and a second time associated with
disk1.
Using "diskutil list" gives the following:
> The-Dark-Side:~ rona$ diskutil list
> /dev/disk0
> #: type name size identifier
> 0: GUID_partition_scheme *232.9 GB disk0
> 1: EFI 200.0 MB disk0s1
> 2: Apple_HFS Mac OS X.4 49.9 GB disk0s2
> 3: Apple_HFS Mac OS X.5 49.9 GB disk0s3
> 4: Apple_HFS Expanse 132.6 GB disk0s4
> /dev/disk1
> #: type name size identifier
> 0: UDF_102 *22.6 GB disk1
The parameters to fuse_main are:
> const char* fuse_argv[] = {
> arguments_[0], // /sbin/mount_SAI_udf
> "-ovolname=UDF FS", // Volume name (hard coded, and incorrect
> as well - should be "UDF_102").
> "-s", // Single thread
> "-oping_diskarb", // Not sure whether I need this or not.
> "-oallow_other", // Since disk arbitration runs me in root, I
> need to allow other users to access it, or the volume icon doesn't
> show up at all.
> mount_path_ // In this case, /Volumes/UDF_102
> };
In my utility tool (SAI_udf_util), my mount function is launching /
sbin/mount to mount the volume. This may be the cause of the confusion.
I suspect that /sbin/mount is generating the the "disk1" DiskAppeared
event, while MacFuse is generating the unassociated DiskAppeared event.
If I could somehow consolidate the two, (or eliminate the one
generated by mount, and add a device association to the one generated
by MacFuse), I suspect that my problems would go away.
Thanks for your time,
Ron Aldrich
Software Architects, Inc.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"macfuse-devel" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/macfuse-devel?hl=en
-~----------~----~----~----~------~----~------~--~---