Next VFS KPI ?
Next VFS KPI ?
- Subject: Next VFS KPI ?
- From: Brian Bergstrand <email@hidden>
- Date: Mon, 1 Aug 2005 02:11:04 -0500
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Well, thanks to Quinn and Mike I solved the Finder missing files
problem. Turned out that some assumptions we were making in readdir
broke with the new Finder version and our readdir was returning
EINVAL. Fixing this opened a whole can of worms that required me to
rewrite our EOF detection completely.
Now for a new problem. We do not support exchangedata(). This wasn't
a problem on Panther, as the system worked around it. And it appears
Tiger still does this, but not for our FS. SMB and NFS don't support
exchangedata either, but they still work with those apps that use it.
The app I'm testing is TextEdit, and using fs_usuage, I can see
exchangedata is returning 45 (ENOTSUP) when trying to save a modified
file. SMBFS works fine though. So I'm guessing something is wrong in
our vol caps.
VOL_CAP_INT_EXCHANGEDATA is not set in capabilities, and initially it
wasn't set in valid either, but I saw that both NFS and SMBFS set it
in valid, so I tried that -- still the same problem.
So, I tried to use DYLD_IMAGE_SUFFIX=_debug on TextEdit, but it just
would not load the debug versions. Next, I went looking for the
exchangedata source on Darwin, but apparently libSystem does not
contain actual source code and I just could not figure out where to
look for it (tried libc too) -- maybe libSystem is not open source.
Anyway, anyone have an idea as to what may be going on?
Here's our vol cap settings:
void volcaps(mount_t mp, vol_capabilities_attr_t *capsp)
{
// Supported caps
capsp->capabilities[VOL_CAPABILITIES_FORMAT] =
VOL_CAP_FMT_CASE_PRESERVING /* Not true for DOS NS */ |
VOL_CAP_FMT_FAST_STATFS /* NCIOM caches stat info */
#ifdef OSX_KPI
| VOL_CAP_FMT_2TB_FILESIZE // We support at least 2TB files.
#endif
;
#ifdef OSX_KPI
capsp->capabilities[VOL_CAPABILITIES_INTERFACES] = 0; //
attrlist is handled by the kernel
#else
capsp->capabilities[VOL_CAPABILITIES_INTERFACES] =
VOL_CAP_INT_ATTRLIST;
#endif
capsp->capabilities[VOL_CAPABILITIES_RESERVED1] = 0;
capsp->capabilities[VOL_CAPABILITIES_RESERVED2] = 0;
/* Capabilities we know we the meaning of (whether they're
supported or not) */
capsp->valid[VOL_CAPABILITIES_FORMAT] =
VOL_CAP_FMT_PERSISTENTOBJECTIDS |
VOL_CAP_FMT_SYMBOLICLINKS |
VOL_CAP_FMT_HARDLINKS |
VOL_CAP_FMT_JOURNAL |
VOL_CAP_FMT_JOURNAL_ACTIVE |
VOL_CAP_FMT_NO_ROOT_TIMES |
VOL_CAP_FMT_SPARSE_FILES |
VOL_CAP_FMT_ZERO_RUNS |
VOL_CAP_FMT_FAST_STATFS
#ifdef OSX_KPI
| VOL_CAP_FMT_2TB_FILESIZE
#endif
;
capsp->valid[VOL_CAPABILITIES_INTERFACES] =
VOL_CAP_INT_SEARCHFS |
VOL_CAP_INT_ATTRLIST |
VOL_CAP_INT_NFSEXPORT |
VOL_CAP_INT_READDIRATTR |
VOL_CAP_INT_EXCHANGEDATA |
VOL_CAP_INT_COPYFILE |
VOL_CAP_INT_ALLOCATE |
VOL_CAP_INT_VOL_RENAME |
VOL_CAP_INT_ADVLOCK |
VOL_CAP_INT_FLOCK;
capsp->valid[VOL_CAPABILITIES_RESERVED1] = 0;
capsp->valid[VOL_CAPABILITIES_RESERVED2] = 0;
}
TIA.
Brian Bergstrand
<http://www.bergstrand.org/brian/> PGP Key ID: 0xB6C7B6A2
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Darwin)
iD8DBQFC7csOedHYW7bHtqIRArWQAKDd7g5Zo/MwMq7XwVgSia/X59TRfACfQQ1a
8JY2pz0Ydjx5+ZsFm+LXUw0=
=w516
-----END PGP SIGNATURE-----
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden