Pass GDBM_NOLOCK to gdbm

gdbm still uses BSD lockf for locking which is incompatible with NFS.
Since we don't need the locking here since the db files in question
should never be accessed by more than one process since they are
per-home-dir and per-machine we can disable locking without any ill
results.

This should fix rhbz #471279.
This commit is contained in:
Lennart Poettering 2008-12-17 20:22:42 +01:00
parent 209a8d7b55
commit 3f20a152be
2 changed files with 2 additions and 2 deletions

View file

@ -332,7 +332,7 @@ int pa__init(pa_module*m) {
if (!fname)
goto fail;
if (!(u->gdbm_file = gdbm_open(fname, 0, GDBM_WRCREAT, 0600, NULL))) {
if (!(u->gdbm_file = gdbm_open(fname, 0, GDBM_WRCREAT|GDBM_NOLOCK, 0600, NULL))) {
pa_log("Failed to open volume database '%s': %s", fname, gdbm_strerror(gdbm_errno));
pa_xfree(fname);
goto fail;

View file

@ -741,7 +741,7 @@ int pa__init(pa_module*m) {
if (!fname)
goto fail;
if (!(u->gdbm_file = gdbm_open(fname, 0, GDBM_WRCREAT, 0600, NULL))) {
if (!(u->gdbm_file = gdbm_open(fname, 0, GDBM_WRCREAT|GDBM_NOLOCK, 0600, NULL))) {
pa_log("Failed to open volume database '%s': %s", fname, gdbm_strerror(gdbm_errno));
pa_xfree(fname);
goto fail;