[OpenAFS] Solaris 10u6: ZFS cache?

Douglas E. Engert deengert@anl.gov
Wed, 12 Nov 2008 10:58:05 -0600

Derrick Brashear wrote:
>>>>  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 the goal. The atime on cache inodes is meaningless. They aren't
> real files.
>>> 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
> Can we leverage that? Actually, if we do, we have the issue that we
> can no longer use tmpfs as cache, which I assume with your first patch
> we can.

The first patch in effect does not use inodes at all, all operations
on the cache files are done via vn_ or VOP_* operations using the the vnode.

I tried creating a /tmp/afscache where /tmp in in swap. and it works!
The /etd/init.d/afs script needs to create the /tmp/afscache directory.

So are you leaning to using the AFS_CACHE_VNODE_PATH approach
in all cases?

One of the trade offs is that I had to use the pn_get_buf, lookuppnvp
to get the vnode, so it could pass the afs_osi_cred.

With the vfs_vget or tmp_vget approach one has to now how
to  build the fid_t  from the inode as returned by stat.

I have been looking at the Open Solaris code for all this...

>> 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.
> Ok.
> Derrick
> _______________________________________________
> OpenAFS-info mailing list
> OpenAFS-info@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-info


  Douglas E. Engert  <DEEngert@anl.gov>
  Argonne National Laboratory
  9700 South Cass Avenue
  Argonne, Illinois  60439
  (630) 252-5444