Unlinking a file while still holding an oplock can cause problems with
kernel oplocks. This simply releases the oplock before actually
unlinking the file.
return NT_STATUS_OK;
}
+ /* Remove the oplock before potentially deleting the file. */
+ if(fsp->oplock_type) {
+ release_file_oplock(fsp);
+ }
+
/* If this is an old DOS or FCB open and we have multiple opens on
the same handle we only have one share mode. Ensure we only remove
the share mode on the last close. */
saved_status3 = close_remove_share_mode(fsp, close_type);
}
- if(fsp->oplock_type) {
- release_file_oplock(fsp);
- }
-
locking_close_file(smbd_messaging_context(), fsp);
status = fd_close(fsp);