OT? 10.4 VFS - ls works, but Carbon File Mgr listing does not
OT? 10.4 VFS - ls works, but Carbon File Mgr listing does not
- Subject: OT? 10.4 VFS - ls works, but Carbon File Mgr listing does not
- From: Brian Bergstrand <email@hidden>
- Date: Thu, 28 Jul 2005 15:12:58 -0500
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
This may be OT, and if so let me know, but there are no lists for
Carbon File Mgr / VFS interaction.
I've been porting our VFS plugin to 10.4 and we are just about ready
to go for a public beta release. However there's one huge problem
left: File listings in the Finder and Open dialogs appear empty 99%
of the time. I can see readdir being called, and returning the dir
entries, and lookup seems to be called on most of them as well as
access, none of these are returning errors, and everything works with
ls (and it's various flags -l -F -C -i, etc) -- but for whatever
reason Carbon File Mgr is just ignoring the entries.
Sometimes I'll see the entries flash in a window for less than a
second and then disappear and then other times they'll never appear.
I think the problem may be related to our access/getattr calls, but I
don't know what to look for. I've looked at NFS and WebDav and our
access/getattr are as similar as possible to those.
Here's the pertinent info:
Network FS, we don't support native Carbon interfaces, no persistent
id's, we do have unique object ID's, but they are a generated on the
fly and can change with a Rename/Move.
I've tried with an all access admin account and a limited access acct
that has r/w to a few of the sub-folders on the volume, but not the
vol itself. No difference in what is observed.
Preferred I/O size is 64K.
vfs_setflags(mp, MNT_NODEV|MNT_NOSUID)
vfs_setauthopaque() is called as the last step in our mount VNOP
vfs_fsadd flags: VFS_TBLTHREADSAFE|VFS_TBLNOTYPENUM
vol caps:
__private_extern__
void volcaps(mount_t mp, vol_capabilities_attr_t *capsp)
{
/* Capabilities we support */
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
;
capsp->capabilities[VOL_CAPABILITIES_INTERFACES] =
VOL_CAP_INT_ATTRLIST;
capsp->capabilities[VOL_CAPABILITIES_RESERVED1] = 0;
capsp->capabilities[VOL_CAPABILITIES_RESERVED2] = 0;
/* Capabilities we know about */
capsp->valid[VOL_CAPABILITIES_FORMAT] =
VOL_CAP_FMT_PERSISTENTOBJECTIDS |
VOL_CAP_FMT_SYMBOLICLINKS |
VOL_CAP_FMT_HARDLINKS |
VOL_CAP_FMT_CASE_PRESERVING |
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;
capsp->valid[VOL_CAPABILITIES_RESERVED1] = 0;
capsp->valid[VOL_CAPABILITIES_RESERVED2] = 0;
}
vol attrs:
#define NCP_ATTR_CMN_NATIVE ( \
ATTR_CMN_FSID | ATTR_CMN_OBJTAG | \
ATTR_CMN_OBJID | ATTR_CMN_MODTIME | ATTR_CMN_CHGTIME | \
ATTR_CMN_ACCTIME | ATTR_CMN_OWNERID | ATTR_CMN_GRPID )
#define NCP_ATTR_CMN_SUPPORTED NCP_ATTR_CMN_NATIVE
#define NCP_ATTR_VOL_NATIVE ( \
ATTR_VOL_FSTYPE | ATTR_VOL_SIGNATURE | ATTR_VOL_SIZE | \
ATTR_VOL_SPACEFREE | ATTR_VOL_SPACEAVAIL | ATTR_VOL_IOBLOCKSIZE | \
ATTR_VOL_MOUNTPOINT | ATTR_VOL_NAME | ATTR_VOL_MOUNTPOINT | \
ATTR_VOL_MOUNTFLAGS | ATTR_VOL_MOUNTEDDEVICE |
ATTR_VOL_CAPABILITIES | \
ATTR_VOL_ATTRIBUTES | ATTR_VOL_INFO )
Any ideas would be much appreciated.
Thanks.
Brian Bergstrand
<http://www.bergstrand.org/brian/> PGP Key ID: 0xB6C7B6A2
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Darwin)
iD8DBQFC6TxUedHYW7bHtqIRAuAQAJ92yzYZRR/HJlVyqlGEF6eKLD2+9QCg+wZJ
SggltMA3BcbaMHW0C9BygJs=
=nPXi
-----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