X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=etc%2Fcnid_dbd%2Fcmd_dbd_scanvol.c;h=588da0db777591d0e25a4000d03b1d1b1ffb1ef2;hb=1a6013c7ecd313e03eee1192d54bee624d4a9293;hp=576df49fb570bd26009014e9ac8226d75eda5f6d;hpb=cc5fb7fd9d648f38a8cb9e22e2c703e657e1ba6a;p=netatalk.git diff --git a/etc/cnid_dbd/cmd_dbd_scanvol.c b/etc/cnid_dbd/cmd_dbd_scanvol.c index 576df49f..588da0db 100644 --- a/etc/cnid_dbd/cmd_dbd_scanvol.c +++ b/etc/cnid_dbd/cmd_dbd_scanvol.c @@ -862,6 +862,11 @@ static int dbd_readdir(int volroot, cnid_t did) struct dirent *ep; static struct stat st; /* Save some stack space */ + /* keep trying to get the lock */ + if (!db_locked) + if ((db_locked = get_lock(1, NULL)) == -1) + return -1; + /* Check again for .AppleDouble folder, check_adfile also checks/creates it */ if ((addir_ok = check_addir(volroot)) != 0) if ( ! (dbd_flags & DBD_FLAGS_SCAN)) @@ -1082,8 +1087,6 @@ static void delete_orphaned_cnids(DBD *dbd, DBD *dbd_rebuild, dbd_flags_t flags) struct cnid_dbd_rqst rqst; struct cnid_dbd_rply rply; - dbd->db_param.txn_frequency = 0; - /* jump over rootinfo key */ if ( dbif_idwalk(dbd, &dbd_cnid, 0) != 1) return; @@ -1198,7 +1201,6 @@ int cmd_dbd_scanvol(DBD *dbd_ref, struct volinfo *vi, dbd_flags_t flags) db_param.cachesize = 64 * 1024; /* 64 MB */ db_param.maxlocks = DEFAULT_MAXLOCKS; db_param.maxlockobjs = DEFAULT_MAXLOCKOBJS; - db_param.txn_frequency = 1000; /* close txn every 1000 objects */ db_param.logfile_autoremove = 1; /* Make it accessible for all funcs */