Author: vlendec
Date: 2005-08-05 05:42:09 +0000 (Fri, 05 Aug 2005)
New Revision: 9103

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9103

Log:
Hmm. It's too late :-)

Here's the real fix for the problem jerry sees.

Volker

Modified:
   trunk/source/smbd/open.c
   trunk/source/smbd/oplock.c


Changeset:
Modified: trunk/source/smbd/open.c
===================================================================
--- trunk/source/smbd/open.c    2005-08-05 05:32:39 UTC (rev 9102)
+++ trunk/source/smbd/open.c    2005-08-05 05:42:09 UTC (rev 9103)
@@ -1670,7 +1670,10 @@
        set_share_mode(fsp, 0, fsp->oplock_type);
        if ((fsp->oplock_type != NO_OPLOCK) &&
            (fsp->oplock_type != FAKE_LEVEL_II_OPLOCK)) {
-               set_file_oplock(fsp, fsp->oplock_type);
+               if (!set_file_oplock(fsp, fsp->oplock_type)) {
+                       /* Could not get the kernel oplock */
+                       fsp->oplock_type = NO_OPLOCK;
+               }
        }
 
        if (create_options & FILE_DELETE_ON_CLOSE) {

Modified: trunk/source/smbd/oplock.c
===================================================================
--- trunk/source/smbd/oplock.c  2005-08-05 05:32:39 UTC (rev 9102)
+++ trunk/source/smbd/oplock.c  2005-08-05 05:42:09 UTC (rev 9103)
@@ -110,9 +110,8 @@
 
 BOOL set_file_oplock(files_struct *fsp, int oplock_type)
 {
-       if (koplocks) {
-               koplocks->set_oplock(fsp, oplock_type);
-       }
+       if (koplocks && !koplocks->set_oplock(fsp, oplock_type))
+               return False;
 
        fsp->oplock_type = oplock_type;
        fsp->sent_oplock_break = NO_BREAK_SENT;

Reply via email to