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,
