fnum chaining and pipes

Jeremy Allison jallison at cthulhu.engr.sgi.com
Mon Aug 17 22:01:30 GMT 1998

Andrew Tridgell wrote:

> while we are on this topic, here is something for Jeremy. In your
> various packet queueing bits of code, do you handle the chain_fsp
> correctly? I'm thinking of the case where in a OpenX+ReadX the OpenX
> causes a oplock break and the ReadX gets queued for later, does the
> readX get the correct chained fnum from the OpenX when it is finally
> dequeued? Remember that during the oplock break the chain_fsp may have
> been clobbered by the client calling a open/close etc.

Yes you are right, that could potentially fail. I'll add 
that code to the 'save context'/'restore context' part of
the oplock break processing code.

The actual state of affairs would be OpenX+ReadX causes
oplock break to itself in open, whilst processing open the
client does a close() which causes the chain fnum to get 
trashed, and it will still be so after the code goes back to
the open call, as the chain fnum is set *before* oplock break
processing is initiated.

I will also fix this in the code going out as 1.9.18p10.



Buying an operating system without source is like buying
a self-assembly Space Shuttle with no instructions.

More information about the samba-technical mailing list