The branch, v3-2-ctdb has been updated
       via  f957e56ae7b041abc15e5fadc3847da6ca80aece (commit)
      from  7527cfbc73be52e351dbc5579d840972f7532769 (commit)

http://gitweb.samba.org/?p=obnox/samba-ctdb.git;a=shortlog;h=v3-2-ctdb


- Log -----------------------------------------------------------------
commit f957e56ae7b041abc15e5fadc3847da6ca80aece
Author: Tim Prouty <[email protected]>
Date:   Tue Feb 3 23:17:48 2009 -0800

    s3 oplocks: Remove oplocks before handling delete on close semantics
    
    Unlinking a file while still holding an oplock can cause problems with
    kernel oplocks.  This simply releases the oplock before actually
    unlinking the file.

-----------------------------------------------------------------------

Summary of changes:
 source/smbd/close.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/smbd/close.c b/source/smbd/close.c
index 81d25ef..114de2d 100644
--- a/source/smbd/close.c
+++ b/source/smbd/close.c
@@ -553,6 +553,11 @@ static NTSTATUS close_normal_file(files_struct *fsp, enum 
file_close_type close_
                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. */
@@ -562,10 +567,6 @@ static NTSTATUS close_normal_file(files_struct *fsp, enum 
file_close_type 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);


-- 
SAMBA-CTDB repository

Reply via email to