On Tuesday, November 15, 2005 08:55:56 PM -0500 Ron Croonenberg <[EMAIL PROTECTED]> wrote:

Well i have OpenAFS working on OpenSI for a while now.

Things seem to work pretty stable, however we needed a "hack" in some SSI
filesystem handling when a process migrates to another clusternode.

We think we have a good solution for it instead of just a hack.

the question is, does AFS have a unique major number ?

Actually, the question you're trying to ask is whether AFS has a reserved
major number, such that the device number of a mounted AFS filesystem will
be consistent across all systems.  The answer is that it does not.  In
Linux, filesystems which have no physical device backing them are attached
to an unnamed device with a device number allocated by the kernel.  This
number will be distinct from any other block device number in use in the
system, but it will not be consistent from one system to the next, or even
from one boot to the next.

if (S_ISAFS(inode->i_mode)) {
    if ((inode->i_ino == path->ino &&
    inode->i_generation == path->generation &&
    par_mount(inode->i_sb->s_ssidev, path->ssidev)))
    return 1;
    }

If you are in user mode, the correct way to determine whether two paths represent the same AFS file is to use the VIOCGETFID pioctl to obtain the FID's for each file, and compare them. If the file is not in AFS, the pioctl will fail with EINVAL. Note that while there is no interface to obtain the FID of an open file descriptor, in Linux you can cheat by calling the pioctl on /proc/self/fd/N

If you are in kernel mode, you will need access to macros and private data structures belonging to the cache manager in order to determine whether a vnode belongs to AFS and safely extract its FID.

-- Jeff
_______________________________________________
OpenAFS-info mailing list
OpenAFS-info@openafs.org
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to