Hello community,
here is the log from the commit of package samba for openSUSE:Factory checked in at 2014-12-06 13:47:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/samba (Old)
and /work/SRC/openSUSE:Factory/.samba.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "samba"
Changes:
--------
--- /work/SRC/openSUSE:Factory/samba/samba.changes 2014-11-07 09:05:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.samba.new/samba.changes 2014-12-06 13:47:48.000000000 +0100
@@ -1,0 +2,36 @@
+Fri Dec 5 13:12:47 UTC 2014 - ddiss@suse.com
+
+- Specify soft dependency for network-online.target in Winbind systemd service
+ file; (bnc#889175).
+
+-------------------------------------------------------------------
+Tue Dec 2 10:19:26 UTC 2014 - lmuelle@suse.de
+
+- Update to 4.1.14.
+ + pidl/wscript: Remove --with-perl-* options; revert buildtools/wafadmin/
+ Tools/perl.py back to upstream state; (bso#10472).
+ + s4-dns: Add support for BIND 9.10; (bso#10620).
+ + nmbd fails to accept "--piddir" option; (bso#10711).
+ + nss_winbind: Add getgroupmembership for FreeBSD; (bso#10835).
+ + S3: source3/smbd/process.c::srv_send_smb() returns true on the error path;
+ (bso#10880).
+ + vfs_glusterfs: Remove "integer fd" code and store the glfs pointers;
+ (bso#10889).
+ + s3-nmbd: Fix netbios name truncation; (bso#10896).
+ + spoolss: Fix handling of bad EnumJobs levels; (bso#10898).
+ + s3: libsmbclient-smb2. MacOSX 10 SMB2 server doesn't set
+ STATUS_NO_MORE_FILES when handed a non-wildcard path; (bso#10904).
+ + spoolss: Fix jobid in level 3 EnumJobs response; (bso#10905).
+ + s3: nmbd: Ensure NetBIOS names are only 15 characters stored; (bso#10920).
+ + s3:smbd: Fix file corruption using "write cache size != 0"; (bso#10921).
+ + pdb_tdb: Fix a TALLOC/SAFE_FREE mixup; (bso#10932).
+ + s3-keytab: Fix keytab array NULL termination; (bso#10933).
+ + Cleanup add_string_to_array and usage; (bso#10942).
+
+-------------------------------------------------------------------
+Fri Nov 28 15:57:23 CET 2014 - nopower@suse.de
+
+- Remove and cleanup shares and registry state associated with
+ externally deleted snaphots exposed as shadow copies; (bnc#876312).
+
+-------------------------------------------------------------------
Old:
----
samba-4.1.13.tar.asc
samba-4.1.13.tar.gz
New:
----
samba-4.1.14.tar.asc
samba-4.1.14.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ samba.spec ++++++
--- /var/tmp/diff_new_pack.whJ5Zg/_old 2014-12-06 13:47:49.000000000 +0100
+++ /var/tmp/diff_new_pack.whJ5Zg/_new 2014-12-06 13:47:49.000000000 +0100
@@ -121,7 +121,7 @@
BuildRequires: systemd
BuildRequires: systemd-devel
%endif
-%define samba_ver 4.1.13
+%define samba_ver 4.1.14
%define samba_ver_suffix %nil
%if "%{samba_ver_suffix}" == ""
%define samba_source_location http://ftp.samba.org/pub/samba/stable/samba-%{version}.tar.gz
@@ -145,11 +145,11 @@
%else
%define build_make_smp_mflags %{?jobs:-j%jobs}
%endif
-%define SOURCE_TIMESTAMP 3327
+%define SOURCE_TIMESTAMP 3336
%define BRANCH %{version}
%global with_mitkrb5 1
%global with_dc 0
-Version: 4.1.13
+Version: 4.1.14
Release: 0
Url: http://www.samba.org/
Provides: samba-gplv3 = %{version}
++++++ patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/samba.org/13d840ad2ff0db7320e0cbef86cd47872493292c new/patches/samba.org/13d840ad2ff0db7320e0cbef86cd47872493292c
--- old/patches/samba.org/13d840ad2ff0db7320e0cbef86cd47872493292c 2014-10-25 15:37:52.000000000 +0200
+++ new/patches/samba.org/13d840ad2ff0db7320e0cbef86cd47872493292c 2014-12-05 15:13:54.000000000 +0100
@@ -19,7 +19,7 @@
index a42faf8..b2f718b 100644
--- source3/include/proto.h
+++ source3/include/proto.h
-@@ -1624,7 +1624,7 @@ bool ea_list_has_invalid_name(struct ea_list *ea_list);
+@@ -1621,7 +1621,7 @@ bool ea_list_has_invalid_name(struct ea_list *ea_list);
void become_root(void);
void unbecome_root(void);
@@ -28,7 +28,7 @@
int find_service(TALLOC_CTX *ctx, const char *service_in, char **p_service_out);
void cancel_pending_lock_requests_by_fid(files_struct *fsp,
-@@ -1634,6 +1634,9 @@ void send_stat_cache_delete_message(struct messaging_context *msg_ctx,
+@@ -1631,6 +1631,9 @@ void send_stat_cache_delete_message(struct messaging_context *msg_ctx,
const char *name);
NTSTATUS can_delete_directory_fsp(files_struct *fsp);
bool change_to_root_user(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/samba.org/3627ed732637a3b1bf992156306d6ffc14727b46 new/patches/samba.org/3627ed732637a3b1bf992156306d6ffc14727b46
--- old/patches/samba.org/3627ed732637a3b1bf992156306d6ffc14727b46 2014-10-25 15:37:51.000000000 +0200
+++ new/patches/samba.org/3627ed732637a3b1bf992156306d6ffc14727b46 2014-12-05 15:13:54.000000000 +0100
@@ -162,7 +162,7 @@
index fba0133..35a292d 100644
--- source3/wscript
+++ source3/wscript
-@@ -1755,7 +1755,7 @@ main() {
+@@ -1754,7 +1754,7 @@ main() {
if conf.CHECK_HEADERS('gpfs_gpl.h'):
conf.DEFINE('HAVE_GPFS', '1')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/samba.org/4e6934ec6c163ad6fd9c317b5a7dd7775b0dc83f new/patches/samba.org/4e6934ec6c163ad6fd9c317b5a7dd7775b0dc83f
--- old/patches/samba.org/4e6934ec6c163ad6fd9c317b5a7dd7775b0dc83f 2014-10-25 15:37:52.000000000 +0200
+++ new/patches/samba.org/4e6934ec6c163ad6fd9c317b5a7dd7775b0dc83f 2014-12-05 15:13:54.000000000 +0100
@@ -164,6 +164,15 @@
delete_write_cache(fsp);
TALLOC_FREE(fsp->oplock_timeout);
+@@ -151,7 +151,7 @@ static void downgrade_file_oplock(files_
+ sconn->oplocks.level_II_open++;
+ fsp->sent_oplock_break = NO_BREAK_SENT;
+
+- flush_write_cache(fsp, OPLOCK_RELEASE_FLUSH);
++ flush_write_cache(fsp, SAMBA_OPLOCK_RELEASE_FLUSH);
+ delete_write_cache(fsp);
+
+ TALLOC_FREE(fsp->oplock_timeout);
diff --git source3/smbd/reply.c source3/smbd/reply.c
index 6b926fb..b94bc45 100644
--- source3/smbd/reply.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/samba.org/6de10acec38eb0e5ac3f989101935ec53fac2fc0 new/patches/samba.org/6de10acec38eb0e5ac3f989101935ec53fac2fc0
--- old/patches/samba.org/6de10acec38eb0e5ac3f989101935ec53fac2fc0 2014-10-25 15:37:52.000000000 +0200
+++ new/patches/samba.org/6de10acec38eb0e5ac3f989101935ec53fac2fc0 2014-12-05 15:13:54.000000000 +0100
@@ -23,7 +23,7 @@
index 35a292d..4ccd1b0 100644
--- source3/wscript
+++ source3/wscript
-@@ -1755,7 +1755,8 @@ main() {
+@@ -1754,7 +1754,8 @@ main() {
if conf.CHECK_HEADERS('gpfs_gpl.h'):
conf.DEFINE('HAVE_GPFS', '1')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/series new/patches/series
--- old/patches/series 2014-11-05 19:20:59.000000000 +0100
+++ new/patches/series 2014-12-05 15:13:54.000000000 +0100
@@ -143,6 +143,8 @@
suse/0006-lanman-don-t-leak-cache_path-onto-talloc-tos.patch -p0 # bnc 899558
suse/0007-messaging-fix-talloc-tos-leak-in-message_key_pid.patch -p0 # bnc 899558
suse/0008-printer_list-fix-talloc-tos-leak-of-tdb-record.patch -p0 # bnc 899558
+suse/0001-fsrvp-prune-shadow-copies-if-associated-path-doesn-t.patch -p0 # bnc 876312
+suse/0001-doc-prune-stale-and-sequence-timeout-fssd-parameters.patch -p0 # bnc 876312
# this one should always live at the end and should be redone
# diabled cf. 280452
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/suse/0001-doc-prune-stale-and-sequence-timeout-fssd-parameters.patch new/patches/suse/0001-doc-prune-stale-and-sequence-timeout-fssd-parameters.patch
--- old/patches/suse/0001-doc-prune-stale-and-sequence-timeout-fssd-parameters.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches/suse/0001-doc-prune-stale-and-sequence-timeout-fssd-parameters.patch 2014-12-05 15:13:54.000000000 +0100
@@ -0,0 +1,86 @@
+From 4c49ad62a8c254c861ebb2898120020d60660b04 Mon Sep 17 00:00:00 2001
+From: David Disseldorp
+Date: Wed, 26 Nov 2014 13:01:00 +0100
+Subject: [PATCH] doc: "prune stale" and "sequence timeout" fssd parameters
+
+This change adds smb.conf documentation for the "fss: prune stale" and
+"fss: sequence timeout" parameters accepted by Samba's FSRVP server.
+
+Signed-off-by: David Disseldorp
+---
+ docs-xml/smbdotconf/misc/fssprunestale.xml | 16 ++++++++++++++++
+ docs-xml/smbdotconf/misc/fsssequencetimeout.xml | 16 ++++++++++++++++
+ docs-xml/smbdotconf/misc/rpcdaemon.xml | 7 ++++---
+ 3 files changed, 36 insertions(+), 3 deletions(-)
+ create mode 100644 docs-xml/smbdotconf/misc/fssprunestale.xml
+ create mode 100644 docs-xml/smbdotconf/misc/fsssequencetimeout.xml
+
+diff --git docs-xml/smbdotconf/misc/fssprunestale.xml docs-xml/smbdotconf/misc/fssprunestale.xml
+new file mode 100644
+index 0000000..d583104
+--- /dev/null
++++ docs-xml/smbdotconf/misc/fssprunestale.xml
+@@ -0,0 +1,16 @@
++http://www.samba.org/samba/DTD/samba-doc">
++<description>
++ <para>
++ When enabled, Samba's File Server Remove VSS Protocol (FSRVP) server
++ checks all FSRVP initiated snapshots on startup, and removes any
++ corresponding state (including share definitions) for nonexistent
++ snapshot paths.
++ </para>
++</description>
++<value type="default">no</value>
++<value type="example">yes</value>
++
+diff --git docs-xml/smbdotconf/misc/fsssequencetimeout.xml docs-xml/smbdotconf/misc/fsssequencetimeout.xml
+new file mode 100644
+index 0000000..9419a33
+--- /dev/null
++++ docs-xml/smbdotconf/misc/fsssequencetimeout.xml
+@@ -0,0 +1,16 @@
++http://www.samba.org/samba/DTD/samba-doc">
++<description>
++ <para>
++ The File Server Remove VSS Protocol (FSRVP) server includes a message
++ sequence timer to ensure cleanup on unexpected client disconnect. This
++ parameter overrides the default timeout between FSRVP operations.
++ FSRVP timeouts can be completely disabled via a value of 0.
++ </para>
++</description>
++<value type="default">180 or 1800, depending on operation</value>
++<value type="example">0</value>
++
+diff --git docs-xml/smbdotconf/misc/rpcdaemon.xml docs-xml/smbdotconf/misc/rpcdaemon.xml
+index 5fbe886..a06e91d 100644
+--- docs-xml/smbdotconf/misc/rpcdaemon.xml
++++ docs-xml/smbdotconf/misc/rpcdaemon.xml
+@@ -56,13 +56,14 @@
+ </para>
+
+ <para>
+- Samba includes separate daemons for spoolss and the lsarpc/lsass,
+- netlogon and samr pipes. Currently three daemons are available and they
+- are called:
++ Samba includes separate daemons for spoolss, lsarpc/lsass, netlogon,
++ samr, and FSRVP. Currently four daemons are available and they are
++ called:
+ <programlisting>
+ epmd
+ lsasd
+ spoolssd
++ fssd
+ </programlisting>
+ Example:
+ <programlisting>
+--
+1.8.4.5
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/suse/0001-fsrvp-prune-shadow-copies-if-associated-path-doesn-t.patch new/patches/suse/0001-fsrvp-prune-shadow-copies-if-associated-path-doesn-t.patch
--- old/patches/suse/0001-fsrvp-prune-shadow-copies-if-associated-path-doesn-t.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches/suse/0001-fsrvp-prune-shadow-copies-if-associated-path-doesn-t.patch 2014-12-05 15:13:54.000000000 +0100
@@ -0,0 +1,357 @@
+From 48f9059322cfc732482db1ed6b2dbe09484222fc Mon Sep 17 00:00:00 2001
+From: Noel Power
+Date: Thu, 13 Nov 2014 11:13:35 +0000
+Subject: [PATCH] fsrvp: prune shadow copies if associated path doesn't exist
+
+This patch implements some simple FSRVP server housekeeping. On startup
+the server scans the cached entries, any entries where the underlying
+system paths associated with shadow copies no longer exist are removed
+from the cache and from the registry.
+
+This behaviour is disabled by default, but can be enabled via the new
+"fss: prune stale" smb.conf parameter.
+
+Signed-off-by: Noel Power
+Signed-off-by: David Disseldorp
+---
+ source3/rpc_server/fss/srv_fss_agent.c | 233 +++++++++++++++++++++++++++++----
+ source3/rpc_server/fss/srv_fss_agent.h | 2 +-
+ source3/rpc_server/fssd.c | 6 +-
+ 3 files changed, 212 insertions(+), 29 deletions(-)
+
+diff --git source3/rpc_server/fss/srv_fss_agent.c source3/rpc_server/fss/srv_fss_agent.c
+index b6a3bf0..6f11161 100644
+--- source3/rpc_server/fss/srv_fss_agent.c
++++ source3/rpc_server/fss/srv_fss_agent.c
+@@ -140,6 +140,168 @@ static NTSTATUS fss_vfs_conn_create(TALLOC_CTX *mem_ctx,
+ struct messaging_context *msg_ctx,
+ struct auth_session_info *session_info,
+ int snum,
++ struct connection_struct **conn_out);
++static void fss_vfs_conn_destroy(struct connection_struct *conn);
++
++/* test if system path exists */
++static bool snap_path_exists(TALLOC_CTX *ctx, struct messaging_context *msg_ctx,
++ struct fss_sc *sc)
++{
++ SMB_STRUCT_STAT st;
++ struct connection_struct *conn = NULL;
++ struct smb_filename *smb_fname = NULL;
++ char *service = NULL;
++ char *share;
++ int snum;
++ int ret;
++ NTSTATUS status;
++ bool result;
++
++ ZERO_STRUCT(st);
++
++ if ((sc->smaps_count == 0) || (sc->sc_path == NULL)) {
++ result = false;
++ goto out;
++ }
++
++ share = sc->smaps->share_name;
++ snum = find_service(ctx, share, &service);
++
++ if ((snum == -1) || (service == NULL)) {
++ result = false;
++ goto out;
++ }
++
++ status = fss_vfs_conn_create(ctx, server_event_context(),
++ msg_ctx, NULL, snum, &conn);
++
++ if(!NT_STATUS_IS_OK(status)) {
++ result = false;
++ goto out;
++ }
++
++ smb_fname = synthetic_smb_fname(service, sc->sc_path, NULL, NULL);
++ if (smb_fname == NULL) {
++ result = false;
++ goto out;
++ }
++
++ ret = SMB_VFS_STAT(conn, smb_fname);
++ if ((ret == -1) && (errno == ENOENT)) {
++ result = false;
++ goto out;
++ }
++ result = true;
++out:
++ if (conn) {
++ fss_vfs_conn_destroy(conn);
++ }
++ TALLOC_FREE(service);
++ return result;
++}
++
++static NTSTATUS sc_smap_unexpose(struct messaging_context *msg_ctx,
++ struct fss_sc_smap *sc_smap, bool delete_all);
++
++static NTSTATUS fss_prune_stale(struct messaging_context *msg_ctx,
++ const char *db_path)
++{
++ struct fss_sc_set *sc_sets;
++ uint32_t sc_sets_count = 0;
++ struct fss_sc_set *sc_set;
++ struct fss_sc_smap *prunable_sc_smaps = NULL;
++ bool is_modified = false;
++ NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
++ TALLOC_CTX *ctx = talloc_new(NULL);
++
++ if (!ctx) {
++ return NT_STATUS_NO_MEMORY;
++ }
++
++ /* work with temporary state for simple cleanup on failure */
++ become_root();
++ status = fss_state_retrieve(ctx, &sc_sets, &sc_sets_count, db_path);
++ unbecome_root();
++ if (!NT_STATUS_IS_OK(status)) {
++ DEBUG(1, ("failed to retrieve fss server state: %s\n",
++ nt_errstr(status)));
++ goto out;
++ }
++
++ /* walk the cache and pick up any entries to be deleted */
++ sc_set = sc_sets;
++ DEBUG(10, ("pruning shared shadow copies\n"));
++ while (sc_set) {
++ struct fss_sc *sc;
++ struct fss_sc_set *sc_set_next = sc_set->next;
++ char *set_id = GUID_string(ctx, &sc_set->id);
++ if (set_id == NULL) {
++ status = NT_STATUS_NO_MEMORY;
++ goto out;
++ }
++ DEBUGADD(10, ("\tprocessing shadow set id %s\n", set_id));
++ sc = sc_set->scs;
++ while (sc) {
++ struct fss_sc_smap *sc_smap;
++ struct fss_sc *sc_next = sc->next;
++ DEBUGADD(10, ("\tprocessing shadow copy path %s\n",
++ sc->sc_path));
++ if (snap_path_exists(ctx, msg_ctx, sc)) {
++ sc = sc_next;
++ continue;
++ }
++
++ /* move missing snapshot state to purge list */
++ sc_smap = sc->smaps;
++ while (sc_smap != NULL) {
++ struct fss_sc_smap *smap_next = sc_smap->next;
++ DLIST_REMOVE(sc->smaps, sc_smap);
++ DLIST_ADD_END(prunable_sc_smaps, sc_smap,
++ struct fss_sc_smap *);
++ sc->smaps_count--;
++ sc_smap = smap_next;
++ }
++
++ DLIST_REMOVE(sc_set->scs, sc);
++ sc_set->scs_count--;
++ is_modified = true;
++ sc = sc_next;
++ }
++ if (sc_set->scs_count == 0) {
++ DLIST_REMOVE(sc_sets, sc_set);
++ sc_sets_count--;
++ }
++ sc_set = sc_set_next;
++ }
++
++ if (is_modified) {
++ /* unexpose all shares in a single transaction */
++ status = sc_smap_unexpose(msg_ctx, prunable_sc_smaps, true);
++ if (!NT_STATUS_IS_OK(status)) {
++ /* exit without storing updated state */
++ goto out;
++ }
++
++ become_root();
++ status = fss_state_store(ctx, sc_sets, sc_sets_count, db_path);
++ unbecome_root();
++ if (!NT_STATUS_IS_OK(status)) {
++ DEBUG(1, ("pruning failed to store fss server state: %s\n",
++ nt_errstr(status)));
++ goto out;
++ }
++ }
++ status = NT_STATUS_OK;
++out:
++ TALLOC_FREE(ctx);
++ return status;
++}
++
++static NTSTATUS fss_vfs_conn_create(TALLOC_CTX *mem_ctx,
++ struct tevent_context *ev,
++ struct messaging_context *msg_ctx,
++ struct auth_session_info *session_info,
++ int snum,
+ struct connection_struct **conn_out)
+ {
+ struct connection_struct *conn = NULL;
+@@ -250,10 +412,9 @@ void srv_fssa_cleanup(void)
+ ZERO_STRUCT(fss_global);
+ }
+
+-NTSTATUS srv_fssa_start(void)
++NTSTATUS srv_fssa_start(struct messaging_context *msg_ctx)
+ {
+ NTSTATUS status;
+-
+ fss_global.mem_ctx = talloc_named_const(NULL, 0,
+ "parent fss rpc server ctx");
+ if (fss_global.mem_ctx == NULL) {
+@@ -272,6 +433,9 @@ NTSTATUS srv_fssa_start(void)
+ * The server MUST populate the GlobalShadowCopySetTable with the
+ * ShadowCopySet entries read from the configuration store.
+ */
++ if (lp_parm_bool(GLOBAL_SECTION_SNUM, "fss", "prune stale", false)) {
++ fss_prune_stale(msg_ctx, fss_global.db_path);
++ }
+ become_root();
+ status = fss_state_retrieve(fss_global.mem_ctx, &fss_global.sc_sets,
+ &fss_global.sc_sets_count,
+@@ -1484,11 +1648,12 @@ uint32_t _fss_GetShareMapping(struct pipes_struct *p,
+ }
+
+ static NTSTATUS sc_smap_unexpose(struct messaging_context *msg_ctx,
+- struct fss_sc_smap *sc_smap)
++ struct fss_sc_smap *sc_smap, bool delete_all)
+ {
+ NTSTATUS ret;
+ struct smbconf_ctx *conf_ctx;
+ sbcErr cerr;
++ bool is_modified = false;
+ TALLOC_CTX *tmp_ctx = talloc_new(sc_smap);
+ if (tmp_ctx == NULL) {
+ return NT_STATUS_NO_MEMORY;
+@@ -1505,12 +1670,6 @@ static NTSTATUS sc_smap_unexpose(struct messaging_context *msg_ctx,
+ /* registry IO must be done as root */
+ become_root();
+
+- if (!smbconf_share_exists(conf_ctx, sc_smap->sc_share_name)) {
+- DEBUG(2, ("no such share: %s\n", sc_smap->sc_share_name));
+- ret = NT_STATUS_OK;
+- goto done;
+- }
+-
+ cerr = smbconf_transaction_start(conf_ctx);
+ if (!SBC_ERROR_IS_OK(cerr)) {
+ DEBUG(0, ("error starting transaction: %s\n",
+@@ -1519,26 +1678,48 @@ static NTSTATUS sc_smap_unexpose(struct messaging_context *msg_ctx,
+ goto err_conf;
+ }
+
+- cerr = smbconf_delete_share(conf_ctx, sc_smap->sc_share_name);
+- if (!SBC_ERROR_IS_OK(cerr)) {
+- DEBUG(0, ("error deleting share: %s\n",
+- sbcErrorString(cerr)));
+- ret = NT_STATUS_UNSUCCESSFUL;
+- goto err_cancel;
+- }
++ while (sc_smap) {
++ struct fss_sc_smap *sc_map_next = sc_smap->next;
++ if (!smbconf_share_exists(conf_ctx, sc_smap->sc_share_name)) {
++ DEBUG(2, ("no such share: %s\n", sc_smap->sc_share_name));
++ if (!delete_all) {
++ ret = NT_STATUS_OK;
++ goto err_cancel;
++ }
++ sc_smap = sc_map_next;
++ continue;
++ }
+
+- cerr = smbconf_transaction_commit(conf_ctx);
+- if (!SBC_ERROR_IS_OK(cerr)) {
+- DEBUG(0, ("error committing transaction: %s\n",
+- sbcErrorString(cerr)));
+- ret = NT_STATUS_UNSUCCESSFUL;
++ cerr = smbconf_delete_share(conf_ctx, sc_smap->sc_share_name);
++ if (!SBC_ERROR_IS_OK(cerr)) {
++ DEBUG(0, ("error deleting share: %s\n",
++ sbcErrorString(cerr)));
++ ret = NT_STATUS_UNSUCCESSFUL;
++ goto err_cancel;
++ }
++ is_modified = true;
++ sc_smap->is_exposed = false;
++ if (delete_all) {
++ sc_smap = sc_map_next;
++ } else {
++ sc_smap = NULL; /* only process single sc_map entry */
++ }
++ }
++ if (is_modified) {
++ cerr = smbconf_transaction_commit(conf_ctx);
++ if (!SBC_ERROR_IS_OK(cerr)) {
++ DEBUG(0, ("error committing transaction: %s\n",
++ sbcErrorString(cerr)));
++ ret = NT_STATUS_UNSUCCESSFUL;
++ goto err_cancel;
++ }
++ message_send_all(msg_ctx, MSG_SMB_CONF_UPDATED, NULL, 0, NULL);
++ } else {
++ ret = NT_STATUS_OK;
+ goto err_cancel;
+ }
+- message_send_all(msg_ctx, MSG_SMB_CONF_UPDATED, NULL, 0, NULL);
+-done:
+- sc_smap->is_exposed = false;
+-
+ ret = NT_STATUS_OK;
++
+ err_conf:
+ talloc_free(conf_ctx);
+ unbecome_root();
+@@ -1625,7 +1806,7 @@ struct tevent_req *_fss_DeleteShareMapping_send(struct tevent_context *ev,
+ }
+ delete_state->sc_smap = sc_smap;
+
+- status = sc_smap_unexpose(p->msg_ctx, sc_smap);
++ status = sc_smap_unexpose(p->msg_ctx, sc_smap, false);
+ if (tevent_req_nterror(req, status)) {
+ DEBUG(0, ("failed to remove share %s: %s\n",
+ sc_smap->sc_share_name, nt_errstr(status)));
+diff --git source3/rpc_server/fss/srv_fss_agent.h source3/rpc_server/fss/srv_fss_agent.h
+index 532e6b6..9d53439 100644
+--- source3/rpc_server/fss/srv_fss_agent.h
++++ source3/rpc_server/fss/srv_fss_agent.h
+@@ -22,7 +22,7 @@
+ #ifndef _SRV_FSS_AGENT_H_
+ #define _SRV_FSS_AGENT_H_
+
+-NTSTATUS srv_fssa_start(void);
++NTSTATUS srv_fssa_start(struct messaging_context *msg_ctx);
+ void srv_fssa_cleanup(void);
+
+ #endif /*_SRV_FSS_AGENT_H_ */
+diff --git source3/rpc_server/fssd.c source3/rpc_server/fssd.c
+index 3b4f71c..bb207dd 100644
+--- source3/rpc_server/fssd.c
++++ source3/rpc_server/fssd.c
+@@ -137,7 +137,9 @@ static bool fss_shutdown_cb(void *ptr)
+ static bool fss_init_cb(void *ptr)
+ {
+ NTSTATUS status;
+- status = srv_fssa_start();
++ struct messaging_context *msg_ctx =
++ talloc_get_type_abort(ptr,struct messaging_context);
++ status = srv_fssa_start(msg_ctx);
+ return NT_STATUS_IS_OK(status);
+ }
+
+@@ -152,7 +154,7 @@ void start_fssd(struct tevent_context *ev_ctx,
+
+ fss_cb.init = fss_init_cb;
+ fss_cb.shutdown = fss_shutdown_cb;
+- fss_cb.private_data = NULL;
++ fss_cb.private_data = msg_ctx;
+
+ DEBUG(1, ("Forking File Server Shadow-copy Daemon\n"));
+
+--
+1.8.4.5
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/suse/0009-vfs-add-snapshot-create-delete-calls-to-vfs_btrfs.patch new/patches/suse/0009-vfs-add-snapshot-create-delete-calls-to-vfs_btrfs.patch
--- old/patches/suse/0009-vfs-add-snapshot-create-delete-calls-to-vfs_btrfs.patch 2014-10-25 15:37:52.000000000 +0200
+++ new/patches/suse/0009-vfs-add-snapshot-create-delete-calls-to-vfs_btrfs.patch 2014-12-05 15:13:54.000000000 +0100
@@ -61,7 +61,7 @@
struct btrfs_cc_state {
struct vfs_handle_struct *handle;
-@@ -337,6 +361,366 @@ err_out:
+@@ -347,6 +371,366 @@ err_out:
return status;
}
@@ -428,7 +428,7 @@
static struct vfs_fn_pointers btrfs_fns = {
.fs_capabilities_fn = btrfs_fs_capabilities,
-@@ -344,6 +728,11 @@ static struct vfs_fn_pointers btrfs_fns = {
+@@ -354,6 +738,11 @@ static struct vfs_fn_pointers btrfs_fns = {
.copy_chunk_recv_fn = btrfs_copy_chunk_recv,
.get_compression_fn = btrfs_get_compression,
.set_compression_fn = btrfs_set_compression,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/suse/0010-vfs-add-vfs_snapper-module.patch new/patches/suse/0010-vfs-add-vfs_snapper-module.patch
--- old/patches/suse/0010-vfs-add-vfs_snapper-module.patch 2014-10-25 15:37:52.000000000 +0200
+++ new/patches/suse/0010-vfs-add-vfs_snapper-module.patch 2014-12-05 15:13:54.000000000 +0100
@@ -1434,7 +1434,7 @@
index 4ccd1b0..027ef2f 100644
--- source3/wscript
+++ source3/wscript
-@@ -1782,6 +1782,12 @@ main() {
+@@ -1781,6 +1781,12 @@ main() {
conf.SET_TARGET_TYPE('gfapi', 'EMPTY')
conf.undefine('HAVE_GLUSTERFS')
@@ -1447,7 +1447,7 @@
conf.env.build_regedit = False
if not Options.options.with_regedit == False:
conf.PROCESS_SEPARATE_RULE('system_ncurses')
-@@ -1873,6 +1879,9 @@ main() {
+@@ -1872,6 +1878,9 @@ main() {
if conf.CONFIG_SET('HAVE_GLUSTERFS'):
default_shared_modules.extend(TO_LIST('vfs_glusterfs'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/suse/0031-vfs-add-vfs_shell_snap-module.patch new/patches/suse/0031-vfs-add-vfs_shell_snap-module.patch
--- old/patches/suse/0031-vfs-add-vfs_shell_snap-module.patch 2014-10-25 15:37:52.000000000 +0200
+++ new/patches/suse/0031-vfs-add-vfs_shell_snap-module.patch 2014-12-05 15:13:54.000000000 +0100
@@ -326,7 +326,7 @@
index 027ef2f..6649c4c 100644
--- source3/wscript
+++ source3/wscript
-@@ -1818,7 +1818,7 @@ main() {
+@@ -1817,7 +1817,7 @@ main() {
auth_script vfs_readahead vfs_xattr_tdb vfs_posix_eadb
vfs_streams_xattr vfs_streams_depot vfs_acl_xattr vfs_acl_tdb
vfs_smb_traffic_analyzer vfs_preopen vfs_catia vfs_scannedonly
++++++ samba-4.1.13.tar.gz -> samba-4.1.14.tar.gz ++++++
/work/SRC/openSUSE:Factory/samba/samba-4.1.13.tar.gz /work/SRC/openSUSE:Factory/.samba.new/samba-4.1.14.tar.gz differ: char 5, line 1
++++++ vendor-files.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor-files/systemd/winbind.service new/vendor-files/systemd/winbind.service
--- old/vendor-files/systemd/winbind.service 2014-10-25 15:37:51.000000000 +0200
+++ new/vendor-files/systemd/winbind.service 2014-12-05 15:21:02.000000000 +0100
@@ -1,6 +1,7 @@
[Unit]
Description=Samba Winbind Daemon
After=syslog.target network-online.target nmb.service
+Wants=network-online.target
[Service]
Type=notify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor-files/tools/package-data new/vendor-files/tools/package-data
--- old/vendor-files/tools/package-data 2014-11-06 14:57:44.000000000 +0100
+++ new/vendor-files/tools/package-data 2014-12-05 15:21:41.000000000 +0100
@@ -1,2 +1,2 @@
# This is an autogenrated file.
-SAMBA_PACKAGE_SVN_VERSION="3327"
+SAMBA_PACKAGE_SVN_VERSION="3336"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org