1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00
samba-mirror/source3/torture
Volker Lendecke d734547488 lib: Change the g_lock data model
Now we have one fixed field for the exclusive lock holder and an array
of shared locks. This way we now prioritize writers over readers: If a
pending write comes in while readers are active, it will put itself
into the exclusive slot. Then it waits for the readers to vanish. Only
when all readers are gone the exclusive lock request is granted. New
readers will just look at the exclusive slot and see it's taken. They
will then line up as watchers, retrying whenever things change.

This also means that it will be cheaper to support many shared locks:
Granting a shared lock just means to extend the array. We don't have
to walk the array for possible conflicts.

This also adds explicit UPGRADE and DOWNGRADE operations for better
error checking.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
2019-11-22 23:57:48 +00:00
..
bench_pthreadpool.c torture3: Fix CID 1435119 Error handling issues (CHECKED_RETURN) 2018-04-24 19:41:14 +02:00
cmd_vfs.c s3: torture: Remove cmd_chown() - can be replicated by cmd_open()->cmd_fchown(). 2019-10-15 18:46:37 +00:00
denytest.c
locktest2.c torture3: Use file_id_str_buf() in print_brl() 2019-11-12 20:56:34 +00:00
mangle_test.c
masktest.c Revert "s3:libsmb: Fix printing the session setup information" 2017-06-09 13:00:11 +02:00
msg_sink.c lib: Add lib/util/server_id.h 2017-01-22 18:30:11 +01:00
msg_source.c lib: Add lib/util/server_id.h 2017-01-22 18:30:11 +01:00
msgtest.c
nbench.c s3:libsmb: pass impersonation_level to cli_ntcreate_send() 2018-12-13 08:52:24 +01:00
nbio.c s3: libsmb: add replace support to cli_rename() 2017-03-28 17:45:19 +02:00
pdbtest.c pdbtest: Use dom_sid_str_buf 2019-02-27 01:35:18 +01:00
proto.h torture3: Test the next patch: No two waiters in one do_locked() 2019-11-22 23:57:47 +00:00
rpc_open_tcp.c
scanner.c Correct "existence" typos. 2017-02-22 08:26:22 +01:00
test_addrchange.c s3: torture: Fix return values 2019-05-19 18:48:01 +00:00
test_async_echo.c
test_authinfo_structs.c
test_buffersize.c
test_case_insensitive.c
test_chain3.c s3:libsmb: pass impersonation_level to cli_ntcreate_send() 2018-12-13 08:52:24 +01:00
test_cleanup.c torture3: Remove cleanup3 2019-09-17 22:49:39 +00:00
test_dbwrap_ctdb.c s3: Rename server_messaging_context() to global_messaging_context() 2018-09-07 17:26:17 +02:00
test_dbwrap_do_locked.c dbwrap: Pass "value" to dbwrap_do_locked() callback 2019-11-22 23:57:46 +00:00
test_dbwrap_watch.c torture3: Test the next patch: No two waiters in one do_locked() 2019-11-22 23:57:47 +00:00
test_g_lock.c lib: Change the g_lock data model 2019-11-22 23:57:48 +00:00
test_hidenewfiles.c selftest: Test hide new files timeout 2018-11-09 03:49:55 +01:00
test_idmap_cache.c torture: Add tests for idmap cache 2019-02-28 12:57:24 +00:00
test_idmap_tdb_common.c idmap: remove unused function idmap_is_online() 2017-08-04 14:08:37 +02:00
test_messaging_fd_passing.c
test_messaging_read.c torture3: Extend read3 for the "messaging target re-inits" failure 2019-02-14 02:18:28 +01:00
test_messaging_send_all.c torture: Check messaging_send_all 2017-12-12 20:37:08 +01:00
test_namemap_cache.c gencache: Remove transaction-based tdb 2018-11-06 18:57:26 +01:00
test_notify_online.c s3:libsmb: pass impersonation_level to cli_ntcreate_send() 2018-12-13 08:52:24 +01:00
test_notify.c s3:libsmb: pass impersonation_level to cli_ntcreate_send() 2018-12-13 08:52:24 +01:00
test_nttrans_create.c
test_nttrans_fsctl.c
test_oplock_cancel.c s3:libsmb: pass impersonation_level to cli_ntcreate_send() 2018-12-13 08:52:24 +01:00
test_posix_append.c
test_pthreadpool_tevent.c
test_smb2.c s3: torture: Add MS-FSA style terminating '/' and '\\' test - SMB2-PATH-SLASH. 2019-10-02 08:01:41 +00:00
test_smbsock_any_connect.c
torture.c torture3: Test the next patch: No two waiters in one do_locked() 2019-11-22 23:57:47 +00:00
utable.c
vfstest_chain.c
vfstest.c s3: torture: vfstest: Change from create_conn_struct_tos() -> create_conn_struct_tos_cwd(). 2019-09-11 18:24:28 +00:00
vfstest.h
wbc_async.c torture3: Don't duplicate set_blocking() 2019-08-06 21:49:28 +00:00
wbc_async.h