[OpenAFS] flock on AFS files
Todd M. Lewis
Openafs-Info (E-mail)" <firstname.lastname@example.org
Mon, 27 Oct 2008 12:31:36 -0400
I've got quite a bit of code that does flock() on files in AFS, but I've
always worked under the assumption that this would only work if a single
client is doing the writing. I don't recall whether that assumption was
based on empirical testing, reading it somewhere, or being told. In
those few cases where this is not practical, I have a designated writer
client that other clients connect to through other means (sockets) and
coordinate the updates that way. That's reasonably straightforward, but
painful enough that I avoid it whenever possible.
Probably not the answer you wanted...
On 10/27/2008 12:16 PM, Hans-Werner Paulsen wrote:
> today I am totally confused how the flock(2) call should work on
> AFS files.
> Normally locking works in the following way:
> 1 fd = open("afs-file",O_RDWR)
> do something
> 2 flock(fd,LOCK_EX)
> do something with "afs-file"
> 3 flock(fd,LOCK_UN)
> do something
> 4 close(fd)
> When there are two processes (on different machines) executing that
> code, the (2) flock call has to update the local copy of the afs-file,
> otherwise locking is useless. And the (3) flock call has to sync the
> local copy with the fileserver.
> Writing a small test program I see that this synchronization isn't done.
> How can I use the flock(2) call on AFS files?
> Thank you for any help,