diff options
author | David Disseldorp <ddiss@samba.org> | 2014-07-10 00:18:10 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2014-09-01 21:34:11 +0200 |
commit | 83f448d7f3e6cce42a4b3070f45c84b85ec23ec0 (patch) | |
tree | 4d5f941ddeb7cab8e13fd8efdae0c200308a99e2 /callcatcher-exceptions.grep | |
parent | b95dbbeab9c03b354d9c8cff9ebb9f66411af851 (diff) | |
download | samba-83f448d7f3e6cce42a4b3070f45c84b85ec23ec0.tar.gz |
printing: traverse_read the printer list for share updates
The printcap update procedure involves the background printer process
obtaining the printcap information from the printing backend, writing
this to printer_list.tdb, and then notifying all smbd processes of the
new list. The processes then all attempt to simultaneously traverse
printer_list.tdb, in order to update their local share lists.
With a large number of printers, and a large number of per-client smbd
processes, this traversal results in significant lock contention, mostly
due to the fact that the traversal is unnecessarily done with an
exclusive (write) lock on the printer_list.tdb database.
This commit changes the share update code path to perform a read-only
traversal.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652
Reported-by: Alex K <korobkin+samba@gmail.com>
Reported-by: Franz Pförtsch <franz.pfoertsch@brose.com>
Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
(cherry picked from commit 1e83435eac2cef03fccb4cf69ef5e0bfbd710410)
Diffstat (limited to 'callcatcher-exceptions.grep')
0 files changed, 0 insertions, 0 deletions