[CSL #248914] [OpenAFS] flock() behavior openafs-1.2.11

David Thompson thomas@cs.wisc.edu
Mon, 6 Dec 2004 14:17:25 -0600


Derrick J Brashear wrote:
>
> ok, so does the thing trying to set the lock have "k"
> permission on the
> dir?
>
> yes, the difference is the "old" kernel never tried. but why
> does the new
> kernel lose?

Issue resolved.

"Oh, you mean you have to have the lock acl permission to create a
lock?" You'd think that after running a cell for 12 years that we would
have run into this before...

Actually, it's a little more complicated than that. On Red Hat 9 (and
maybe on older as well), the kernel never bothered passing the flock()
call back to the afs client. It maintained it localy (so two flocks()s
between process on one box would work correctly, but flock()ing between
hosts was broken). So when flock() stopped working upon an upgrade to
Tao Linux, we thought something had broken in the kernel. Really, the
acls had always been wrong, and for the first time, they were being
checked by the afs client code and file server.

Thanks Derrick and others.

--
Dave Thompson

Associate Researcher Department of Computer Science
University of Wisconsin-Madison http://www.cs.wisc.edu/(twiddle)thomas
1210 West Dayton Street
Madison, WI 53706-1685
--