The branch, master has been updated via 98d117a selftest/knownfail: samba*.smb2.oplock.stream1 doesn't work via 7a14f09 s4:torture/smb2: remove samba specific stuff from smb2.oplock via 4604219 s3:smb2_create: don't take 'state->te' as indication for "was_deferred" (bug #9196) from 3c4d0ce samba_dnsupdate: Safely update/create names for Samba3 targets as well
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 98d117a5424d62804b7cb3d8a9ad35e703fc158a Author: Stefan Metzmacher <me...@samba.org> Date: Wed Sep 26 03:24:22 2012 +0200 selftest/knownfail: samba*.smb2.oplock.stream1 doesn't work metze Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Wed Sep 26 07:57:12 CEST 2012 on sn-devel-104 commit 7a14f09f9cc14cfb6234175add1841faf751d51a Author: Stefan Metzmacher <me...@samba.org> Date: Wed Sep 26 03:08:33 2012 +0200 s4:torture/smb2: remove samba specific stuff from smb2.oplock metze commit 4604219ceba96955b3c4bf6ab31aa70c11442d61 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Sep 26 03:04:20 2012 +0200 s3:smb2_create: don't take 'state->te' as indication for "was_deferred" (bug #9196) We always set state->te = NULL of TALLOC_FREE(state->te), before calling smbd_smb2_request_dispatch(), so open_was_deferred_smb2() always returned false, while dispatching it again. But it's remove_deferred_open_message_smb2_internal() which should reset this state. In developer mode validate_my_share_entries() did call smb_panic() before. metze ----------------------------------------------------------------------- Summary of changes: selftest/knownfail | 2 ++ source3/smbd/smb2_create.c | 5 ++++- source4/torture/smb2/oplock.c | 10 ---------- 3 files changed, 6 insertions(+), 11 deletions(-) Changeset truncated at 500 lines: diff --git a/selftest/knownfail b/selftest/knownfail index 9feaac2..953056e 100644 --- a/selftest/knownfail +++ b/selftest/knownfail @@ -155,6 +155,7 @@ ^samba4.smb2.oplock.batch9\(.*\)$ # samba 4 oplocks are a mess ^samba4.smb2.oplock.batch10\(.*\)$ # samba 4 oplocks are a mess ^samba4.smb2.oplock.batch20\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.stream1 # samba 4 oplocks are a mess ^samba4.smb2.getinfo.getinfo # streams on directories does not work ^samba4.ntvfs.cifs.krb5.base.createx_access.createx_access\(.*\)$ ^samba4.ldap.acl.*.AclSearchTests.test_search_anonymous3\(.*\)$ # ACL search behaviour not enabled by default @@ -196,6 +197,7 @@ ^samba3.smb2.lease.multibreak ^samba3.smb2.oplock.batch12 ^samba3.smb2.oplock.batch20 +^samba3.smb2.oplock.stream1 ^samba3.smb2.streams.rename ^samba3.smb2.streams.rename2 ^samba3.smb2.streams.attributes diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c index 9318a83..812d9db 100644 --- a/source3/smbd/smb2_create.c +++ b/source3/smbd/smb2_create.c @@ -377,6 +377,7 @@ static void smbd_smb2_request_create_done(struct tevent_req *tsubreq) struct smbd_smb2_create_state { struct smbd_smb2_request *smb2req; struct smb_request *smb1req; + bool open_was_deferred; struct timed_event *te; struct tevent_immediate *im; struct timeval request_time; @@ -1204,7 +1205,7 @@ bool open_was_deferred_smb2(struct smbd_server_connection *sconn, uint64_t mid) return false; } /* It's not in progress if there's no timeout event. */ - if (!state->te) { + if (!state->open_was_deferred) { return false; } @@ -1235,6 +1236,7 @@ static void remove_deferred_open_message_smb2_internal(struct smbd_smb2_request "mid %llu\n", (unsigned long long)mid )); + state->open_was_deferred = false; /* Ensure we don't have any outstanding timer event. */ TALLOC_FREE(state->te); /* Ensure we don't have any outstanding immediate event. */ @@ -1457,6 +1459,7 @@ bool push_deferred_open_message_smb2(struct smbd_smb2_request *smb2req, &end_time, true) )); + state->open_was_deferred = true; state->te = tevent_add_timer(smb2req->sconn->ev_ctx, state, end_time, diff --git a/source4/torture/smb2/oplock.c b/source4/torture/smb2/oplock.c index fc939cc..4cf7c7d 100644 --- a/source4/torture/smb2/oplock.c +++ b/source4/torture/smb2/oplock.c @@ -2416,10 +2416,6 @@ static bool test_smb2_oplock_batch22(struct torture_context *tctx, int timeout = torture_setting_int(tctx, "oplocktimeout", 30); int te; - if (torture_setting_bool(tctx, "samba3", false)) { - torture_skip(tctx, "BATCH22 disabled against samba3\n"); - } - status = torture_smb2_testdir(tree1, BASEDIR, &h); torture_assert_ntstatus_ok(tctx, status, "Error creating directory"); @@ -2759,12 +2755,6 @@ static bool test_raw_oplock_stream1(struct torture_context *tctx, {&fname_default_stream, true, SMB2_OPLOCK_LEVEL_EXCLUSIVE, SMB2_OPLOCK_LEVEL_II}, }; - /* Only passes against windows at the moment. */ - if (torture_setting_bool(tctx, "samba3", false) || - torture_setting_bool(tctx, "samba4", false)) { - torture_skip(tctx, "STREAM1 disabled against samba3+4\n"); - } - fname_stream = talloc_asprintf(tctx, "%s:%s", fname_base, stream); fname_default_stream = talloc_asprintf(tctx, "%s%s", fname_base, default_stream); -- Samba Shared Repository