svn commit: samba r8967 - in trunk/source/smbd: .

vlendec at samba.org vlendec at samba.org
Wed Aug 3 00:20:35 GMT 2005


Author: vlendec
Date: 2005-08-03 00:20:34 +0000 (Wed, 03 Aug 2005)
New Revision: 8967

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

Log:
Hint from Jeremy: We need to call delay_for_oplocks with the share mode entry
locked, as we decide to grant an oplock and later then entry that oplock
entry. This needs to be protected.

Volker

Modified:
   trunk/source/smbd/open.c


Changeset:
Modified: trunk/source/smbd/open.c
===================================================================
--- trunk/source/smbd/open.c	2005-08-03 00:08:28 UTC (rev 8966)
+++ trunk/source/smbd/open.c	2005-08-03 00:20:34 UTC (rev 8967)
@@ -1590,6 +1590,8 @@
 		dev = psbuf->st_dev;
 		inode = psbuf->st_ino;
 
+		lock_share_entry(dev, inode);
+
 		/* delay_for_oplocks might delete the fsp */
 		open_time = fsp->open_time;
 		if (delay_for_oplocks(fsp, second_try)) {
@@ -1601,11 +1603,10 @@
 			defer_open(&open_time,
 				   (OPLOCK_BREAK_TIMEOUT*2) * 1000000,
 				   fname, dev, inode);
+			unlock_share_entry(dev, inode);
 			return NULL;
 		}
 
-		lock_share_entry(dev, inode);
-
 		num_share_modes = open_mode_check(conn, fname, dev, inode,
 						  access_mask, share_access,
 						  create_options,



More information about the samba-cvs mailing list