smbd/nttrans.c: Fixed bug in split off pipe code.
authorJeremy Allison <jra@samba.org>
Mon, 17 Aug 1998 23:39:59 +0000 (23:39 +0000)
committerJeremy Allison <jra@samba.org>
Mon, 17 Aug 1998 23:39:59 +0000 (23:39 +0000)
locking/locking.c: More blocking lock changes.
Jeremy.
(This used to be commit 2ca4fc95a4227645f1009a057d46b58508846a92)

source3/locking/locking.c
source3/smbd/nttrans.c

index 8737a12e17798562a709a1c4c703c163504f815c..873e382b4692ceaeedd20144ec00ba646e98a0f1 100644 (file)
@@ -116,7 +116,6 @@ static void blocking_lock_reply_success(blocking_lock_record *blr)
    * that here and must set up the chain info manually.
    */
 
-  file_set_chain(fsp);
   chain_size = 0;
 
   outsize = chain_reply(inbuf,outbuf,blr->length,bufsize);
@@ -227,7 +226,7 @@ static BOOL blocking_lock_record_process(blocking_lock_record *blr)
    */
 
   DEBUG(10,("blocking_lock_record_process: only got %d locks of %d needed for fnum = %d. \
-Waiting..\n", blr->lock_num, num_locks, fsp->fnum));
+Waiting....\n", blr->lock_num, num_locks, fsp->fnum));
 
   return False;
 }
@@ -249,8 +248,17 @@ void process_blocking_lock_queue(time_t t)
    */
 
   while(blr != NULL) {
-    files_struct *fsp = file_fsp(blr->inbuf,smb_vwv2);
-    uint16 vuid = (lp_security() == SEC_SHARE) ? UID_FIELD_INVALID :
+    files_struct *fsp = NULL;
+    uint16 vuid;
+
+    /*
+     * Ensure we don't have any old chain_fnum values
+     * sitting around....
+     */
+    file_chain_reset();
+
+    fsp = file_fsp(blr->inbuf,smb_vwv2);
+    vuid = (lp_security() == SEC_SHARE) ? UID_FIELD_INVALID :
                   SVAL(blr->inbuf,smb_uid);
 
     DEBUG(5,("process_blocking_lock_queue: examining pending lock fnum = %d for file %s\n",
index 61826fa0ee317ae14d91aac200512568d234837e..b5ed42fbb3cc90b1d0947da1239fe07015b6e1f2 100644 (file)
@@ -473,6 +473,10 @@ int reply_ntcreate_and_X(connection_struct *conn,
                SSVAL(p,0,FILE_TYPE_MESSAGE_MODE_PIPE);
                /* Device state. */
                SSVAL(p,2, 0x5FF); /* ? */
+
+               DEBUG(5,("reply_ntcreate_and_X: open pipe = %s\n", fname));
+
+               return chain_reply(inbuf,outbuf,length,bufsize);
        }
 
        /*