> I'm looking at afs_syscall_pioctl and I can't figure out how it could > possibly work, except by accident. I think all calls to afs_HandlePioctl > require a VTOAFS() on the first arg. That's what the old Transarc code did.
It looks like you're absolutely correct -- we should call VTOAFS() on the first arg of afs_HandlePioctl. However, it's pretty simple to see why it worked all this time: #define VTOAFS(V) ((struct vcache *)(V)) which is #ifndef AFS_OBSD_ENV. I looked back over various versions of Transarc AFS from 3.1b to 3.6p1, and didn't find any version that called VTOAFS() or equivalent in afs_syscall_pioctl. They did have a special case for Ultrix, as far back as 3.1b, where they called afs_gntovn() beforehand. But the VTOAFS() macro was only added in OpenAFS (in delta convert-vcache-casts-to-macros-20020325), which explains why it's not used everywhere it should be. -- kolya _______________________________________________ OpenAFS-devel mailing list [EMAIL PROTECTED] https://lists.openafs.org/mailman/listinfo/openafs-devel
