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 - [email protected]
+
+- Specify soft dependency for network-online.target in Winbind systemd service
+  file; (bnc#889175).
+
+-------------------------------------------------------------------
+Tue Dec  2 10:19:26 UTC 2014 - [email protected]
+
+- 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 - [email protected]
+
+- 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 <[email protected]>
+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 <[email protected]>
+---
+ 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 @@
++<samba:parameter name="fss: prune stale"
++                 context="G"
++               type="boolean"
++               advanced="1"
++                 xmlns:samba="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>
++</samba:parameter>
+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 @@
++<samba:parameter name="fss: sequence timeout"
++                 context="G"
++               type="integer"
++               advanced="1"
++                 xmlns:samba="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>
++</samba:parameter>
+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 <[email protected]>
+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 <[email protected]>
+Signed-off-by: David Disseldorp <[email protected]>
+---
+ 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to