Jeffrey Altman <[EMAIL PROTECTED]> writes:
> I don't know how the Linux kernel is determining that it should activate
> this functionality.
OpenAFS asks it to -- afs_linux_lock() calls posix_lock_file() in
osi_vnodeops.c.
...
AFS_GLOCK();
code = afs_lockctl(vcp, &flock, cmd, credp);
AFS_GUNLOCK();
#ifdef AFS_LINUX24_ENV
if (code == 0 && (cmd == F_SETLK || cmd == F_SETLKW)) {
#ifdef AFS_LINUX26_ENV
struct file_lock flp2;
flp2 = *flp;
flp2.fl_flags &=~ FL_SLEEP;
code = posix_lock_file(fp, &flp2);
#else
code = posix_lock_file(fp, flp, 0);
#endif
osi_Assert(code != -EAGAIN); /* there should be no conflicts */
if (code) {
struct AFS_FLOCK flock2;
flock2 = flock;
flock2.l_type = F_UNLCK;
AFS_GLOCK();
afs_lockctl(vcp, &flock2, F_SETLK, credp);
AFS_GUNLOCK();
}
}
#endif
...
- a
--
PGP/GPG: 5C9F F366 C9CF 2145 E770 B1B8 EFB1 462D A146 C380
_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info