Changeset 738 for branches/samba-3.5.x/source3/smbd
- Timestamp:
- Nov 12, 2012, 7:10:02 PM (13 years ago)
- Location:
- branches/samba-3.5.x/source3/smbd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.5.x/source3/smbd/blocking.c
r429 r738 300 300 *****************************************************************************/ 301 301 302 static void reply_lockingX_error(struct blocking_lock_record *blr, NTSTATUS status)302 static void undo_locks_obtained(struct blocking_lock_record *blr) 303 303 { 304 304 files_struct *fsp = blr->fsp; … … 344 344 WINDOWS_LOCK); 345 345 } 346 347 generic_blocking_lock_error(blr, status);348 346 } 349 347 … … 358 356 switch(blr->req->cmd) { 359 357 case SMBlockingX: 360 reply_lockingX_error(blr, status); 361 break; 358 /* 359 * This code can be called during the rundown of a 360 * file after it was already closed. In that case, 361 * blr->fsp==NULL and we do not need to undo any 362 * locks, they are already gone. 363 */ 364 if (blr->fsp != NULL) { 365 undo_locks_obtained(blr); 366 } 367 generic_blocking_lock_error(blr, status); 368 break; 362 369 case SMBtrans2: 363 370 case SMBtranss2: -
branches/samba-3.5.x/source3/smbd/open.c
r736 r738 895 895 } 896 896 897 static bool is_delete_request(files_struct *fsp) {898 return ((fsp->access_mask == DELETE_ACCESS) &&899 (fsp->oplock_type == NO_OPLOCK));900 }901 902 897 /* 903 898 * Send a break message to the oplock holder and delay the open for … … 1003 998 1004 999 if (exclusive != NULL) { /* Found an exclusive oplock */ 1005 bool delay_it = is_delete_request(fsp) ?1006 BATCH_OPLOCK_TYPE(exclusive->op_type) : true;1007 1000 SMB_ASSERT(!have_level2); 1008 if (delay_it) { 1009 send_break_message(fsp, exclusive, mid, oplock_request); 1010 return true; 1011 } 1001 send_break_message(fsp, exclusive, mid, oplock_request); 1002 return true; 1012 1003 } 1013 1004
Note:
See TracChangeset
for help on using the changeset viewer.