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