Derrick Brashear wrote:
I have attached a patch based on Derrick's suggestion to use the
AFS_CACHE_VNODE_PATH code.

Excellent.


 o There is code in afs/SOLARIS for a Xvfs file system.
  Rather then overloading the osi_UfsOpen, it might be a
  better choice to create a osi_ZfsOpen much like the
  osi_XvfsOpen. Let me know if that would be better,
  and I can rework the patch. It might be possible
  to use VOP_GETATTR to get an inode as even with ZFS
  they to generate inode numbers.

Given that afsd's behavior changes, this is all or none. Not much
reason not to change things in the UfsOpen case.

 o The Solaris vn_open will use the user's CRED, and
  it was found that permission denied was possible,
  so pn_get_buf, lookuppnvp and VOP_OPEN where used
  instead, using the cred of afs_osi_cred.

That seems wise.

 o The ois_DisableAtime routine was trying to update
  the inode. I skipped that part of the code. Is this
  OK or not?   Is there another way to update the flag?


What is this code trying to do? Is it trying to say don't
update the atime of the cache file as this improves performance?


That's not ideal but it will work until we find another way.


 o The original patch would set the ainode to a signed
  value, but on Solairs with 64 bit, the ainode was
  defined to be unsigned long. This caused problems
  with if (ainode < 0) and switch (ainode).
  So the patch goes back to using afs_int32 for ainode.

Perhaps we should use values just shy of 0xffffffff.

Yes that would work.

It also looks like ZFS is storing the object ID as the
inode which can be obtained from a stat() with -D_FILE_OFFSET_BITS=64


And it looks like the vnode associated with an object can be obtained
via a vfs_vget(vfs, vnode **, fid)
The fid can have the object ID.

So it looks like if there was a ZfsSOpen much like there is a
XvfsOpen, if could get constructe an fid, and called VFS_VGET
to get the vnode. In this case then the AFS_CACHE_VNODE_PATH
would not be needed.

Will look some more tomorrow.






_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info



--

 Douglas E. Engert  <[EMAIL PROTECTED]>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439
 (630) 252-5444
_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to