Under what condition is a STATUS_OPLOCK_BREAK_IN_PROGRESS returned during an
IRP_MJ_CREATE? Since the holder of an oplock has to acknowledge it has been
broken before the server lets others open it the file. Why does it bother
retuning this status?
Ken
You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Hi Ken,
Pages 571 - 584 of Rajeev Nagar’s book discuss oplocks fairly thoroughly.
Pages 575 to 576 address the question of why STATUS_OPLOCK_BREAK_IN_PROGRESS
is returned. If I understand the explanation correctly, the designers of the
LAN Manager server needed to work around a deadlock problem where all of its
fixed number of worker threads are blocked servicing open requests for files
that have oplocks acquired by clients. Then there would be no worker thread
available to service a flush request from a client. And this flush from the
client is required to complete the oplock break sequence.
Keep in mind that the Server had to specify the FILE_COMPLETE_IF_OPLOCKED
Option on the create in order to get this Status value, and the Server
will/should follow the oplock semantics and not access the file until the
oplock break has completed.
Brad
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Ken Galipeau
Sent: Sunday, April 29, 2001 9:13 AM
To: File Systems Developers
Subject: [ntfsd] STATUS_OPLOCK_BREAK_IN_PROGRESS
Under what condition is a STATUS_OPLOCK_BREAK_IN_PROGRESS returned during
an IRP_MJ_CREATE? Since the holder of an oplock has to acknowledge it has
been broken before the server lets others open it the file. Why does it
bother retuning this status?
Ken
You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com