John Rudd wrote:
Hm.  Your patch seems to do this:

change:
lock/unlock from current to eof

to:
seek 0
lock/unlock from (current=0) to eof


Which means you're potentially destroying the notion of "current" (I don't know if that's important in AFS code or not, but it seems like, at best, a bad idea ... and at worst, a potentially disastrous idea).



If you look at the code you'll see that in all cases an explicit seek is done before any read/write. Funny enough, usually after the lockf() meaning the lock wasn't on the right "section" anyway.

I would suggest:

save current to tmp
seek 0
lock/unlock from (current=0) to eof
seek tmp



Right, only that for a correct flock() emulation you'd also have to hold the necessary locks to prevent another thread from seeking away between the two calls... ideally something that is independent of the namei locking. And the code would gain in readability had the ifdefs been packed into a macro or subroutine.

In this precise context however, and without wiping cleaner than clean: why spend yet another system call on something that nobody cares about.


--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Rainer Toebbicke
European Laboratory for Particle Physics(CERN) - Geneva, Switzerland
Phone: +41 22 767 8985       Fax: +41 22 767 7155
_______________________________________________
OpenAFS-info mailing list
OpenAFS-info@openafs.org
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to