]> arthur.barton.de Git - netatalk.git/commitdiff
Merge remote branch 'origin/product-2-2' into develop
authorFrank Lahm <franklahm@googlemail.com>
Fri, 30 Mar 2012 08:48:10 +0000 (10:48 +0200)
committerFrank Lahm <franklahm@googlemail.com>
Fri, 30 Mar 2012 08:48:10 +0000 (10:48 +0200)
NEWS
etc/cnid_dbd/dbif.c

diff --git a/NEWS b/NEWS
index 82c3635af3486cd3f9c81ecb003b13fa5638a9db..47791c31c80faaa44d5a553718aef48d03098440 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -41,6 +41,8 @@ Changes in 2.2.3
 * FIX: afpd: Dont use searchdb when doing partial name search
 * FIX: afpd: Fix a possible bug handling disconnected sessions,
        NetAFP Bug ID #16
+* FIX: dbd: Don't remove BerkeleyDB if it's still in use by eg cnid_dbd, fixes
+       bug introduced in 2.2.2
 * FIX: debian initscript: start avahi-daemon (if available) before atalkd
 
 Changes in 2.2.2
index 217fdd6d73d7255e6e1a16acc8c9acc3f7ada82b..e0860cbfdf322faf80badf659e9f4e3bf2a75242 100644 (file)
@@ -805,7 +805,12 @@ int dbif_env_remove(const char *path)
     int ret;
     DBD *dbd;
 
-    LOG(log_debug, logtype_cnid, "Reopening BerkeleyDB environment");
+    LOG(log_debug, logtype_cnid, "Trying to remove BerkeleyDB environment");
+
+    if (get_lock(LOCK_EXCL, path) != LOCK_EXCL) {
+        LOG(log_warning, logtype_cnid, "CNID db \"%s\" in use, can't remove BerkeleyDB environment", path);
+        return 0;
+    }
     
     if (NULL == (dbd = dbif_init(path, "cnid2.db")))
         return -1;