diff options
author | Jeremy Allison <jra@samba.org> | 2015-02-18 11:48:31 -0800 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2015-02-22 14:19:07 +0100 |
commit | 8b7e8eeb6ddeb3b5f3908fc5def8ee453cd06fc6 (patch) | |
tree | fac52c23520ea3ade118d2118c06397d16f21d13 /source3/smbd/open.c | |
parent | 8409939e461e4337f2e86c804755cf08e8105c43 (diff) | |
download | samba-8b7e8eeb6ddeb3b5f3908fc5def8ee453cd06fc6.tar.gz |
s3: smbd: leases - new torture test shows stat opens can get leases.
Can also issue breaks on these leases.
https://bugzilla.samba.org/show_bug.cgi?id=11102
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Böhme <slow@samba.org>
(cherry picked from commit 2d3db5e7930af9dd2a70727b2f2828bd73a1ec3b)
Diffstat (limited to 'source3/smbd/open.c')
-rw-r--r-- | source3/smbd/open.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 06770e04fb2..773b146cd68 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -3099,7 +3099,8 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, if (file_existed) { /* - * stat opens on existing files don't get oplocks or leases. + * stat opens on existing files don't get oplocks. + * They can get leases. * * Note that we check for stat open on the *open_access_mask*, * i.e. the access mask we actually used to do the open, @@ -3108,12 +3109,8 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, * FILE_OVERWRITE and FILE_OVERWRITE_IF add in O_TRUNC, * which adds FILE_WRITE_DATA to open_access_mask. */ - if (is_stat_open(open_access_mask)) { - if (lease) { - lease->lease_state = SMB2_LEASE_NONE; - } else { - oplock_request = NO_OPLOCK; - } + if (is_stat_open(open_access_mask) && lease == NULL) { + oplock_request = NO_OPLOCK; } } |