tdb2: allow readonly changes even while holding locks.
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 20 Sep 2011 02:32:43 +0000 (12:02 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 20 Sep 2011 02:32:43 +0000 (12:02 +0930)
This happens in SAMBA with the TDB_VERSION1, presumably due to a
read-only traverse nested inside a normal traverse (since it doesn't
occur without TDB_VERSION1).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan/tdb2/tdb.c

index e0c7d957efb6bdf5b231cabd929841d9493ff429..62607bf1e5d8eb2f4c9bf9002aa9b30e299a9af9 100644 (file)
@@ -367,16 +367,6 @@ static bool readonly_changable(struct tdb_context *tdb, const char *caller)
                                             caller);
                return false;
        }
-
-       if (tdb->file->allrecord_lock.count != 0
-           || tdb->file->num_lockrecs != 0) {
-               tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL,
-                                            TDB_LOG_USE_ERROR,
-                                            "%s: can't change"
-                                            " TDB_RDONLY holding locks",
-                                            caller);
-               return false;
-       }
        return true;
 }