diff options
author | Volker Lendecke <vl@samba.org> | 2013-09-03 14:02:09 +0000 |
---|---|---|
committer | David Disseldorp <ddiss@samba.org> | 2013-10-24 14:22:05 +0200 |
commit | 7b70fa18734d9ceb020fe3e5d4cc0c26cd27a484 (patch) | |
tree | ab30deed2c95d1628edce144dd447d2977acf6ed /source3 | |
parent | 184cc138b6fcd832fd084a919d65ad2f273bf5eb (diff) | |
download | samba-7b70fa18734d9ceb020fe3e5d4cc0c26cd27a484.tar.gz samba-7b70fa18734d9ceb020fe3e5d4cc0c26cd27a484.tar.bz2 samba-7b70fa18734d9ceb020fe3e5d4cc0c26cd27a484.zip |
smbd: Move oplock/sharemode ops into one place
This makes the is_stat_open special case in grant_fsp_oplock_type
redundant because in open_file_ntcreate further up we have already set
oplock_request to NO_OPLOCK for stat opens.
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/open.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 4db673acd3..28c2c1c844 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -1435,13 +1435,6 @@ static void grant_fsp_oplock_type(files_struct *fsp, fsp->oplock_type = NO_OPLOCK; } - if (is_stat_open(fsp->access_mask)) { - /* Leave the value already set. */ - DEBUG(10,("grant_fsp_oplock_type: oplock type 0x%x on file %s\n", - fsp->oplock_type, fsp_str_dbg(fsp))); - return; - } - got_level2_oplock = false; got_a_none_oplock = false; @@ -2617,8 +2610,6 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, return status; } - grant_fsp_oplock_type(fsp, lck, oplock_request); - /* * We have the share entry *locked*..... */ @@ -2680,7 +2671,7 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, if (file_existed) { /* stat opens on existing files don't get oplocks. */ if (is_stat_open(open_access_mask)) { - fsp->oplock_type = NO_OPLOCK; + oplock_request = NO_OPLOCK; } } @@ -2703,6 +2694,8 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, * file structs. */ + grant_fsp_oplock_type(fsp, lck, oplock_request); + status = set_file_oplock(fsp); if (!NT_STATUS_IS_OK(status)) { /* |