summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs-xml/manpages-3/tdbtool.8.xml10
-rw-r--r--lib/tdb/tools/tdbtool.c7
2 files changed, 16 insertions, 1 deletions
diff --git a/docs-xml/manpages-3/tdbtool.8.xml b/docs-xml/manpages-3/tdbtool.8.xml
index 9f96db277d..51fc540fc9 100644
--- a/docs-xml/manpages-3/tdbtool.8.xml
+++ b/docs-xml/manpages-3/tdbtool.8.xml
@@ -201,6 +201,14 @@
<varlistentry>
<term>
+ <option>repack</option>
+ </term>
+ <listitem><para>Repack a database using a temporary file to remove fragmentation.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
<option>quit</option>
</term>
<listitem><para>Exit <command>tdbtool</command>.
@@ -220,7 +228,7 @@
<refsect1>
<title>VERSION</title>
- <para>This man page is correct for version 3.0.25 of the Samba suite.</para>
+ <para>This man page is correct for version 3.6 of the Samba suite.</para>
</refsect1>
<refsect1>
diff --git a/lib/tdb/tools/tdbtool.c b/lib/tdb/tools/tdbtool.c
index d93f742d1c..dc5747f87a 100644
--- a/lib/tdb/tools/tdbtool.c
+++ b/lib/tdb/tools/tdbtool.c
@@ -61,6 +61,7 @@ enum commands {
CMD_NEXT,
CMD_SYSTEM,
CMD_CHECK,
+ CMD_REPACK,
CMD_QUIT,
CMD_HELP
};
@@ -98,6 +99,7 @@ COMMAND_TABLE cmd_table[] = {
{"quit", CMD_QUIT},
{"q", CMD_QUIT},
{"!", CMD_SYSTEM},
+ {"repack", CMD_REPACK},
{NULL, CMD_HELP}
};
@@ -203,6 +205,7 @@ static void help(void)
" list : print the database hash table and freelist\n"
" free : print the database freelist\n"
" check : check the integrity of an opened database\n"
+" repack : repack the database\n"
" speed : perform speed tests on the database\n"
" ! command : execute system command\n"
" 1 | first : print the first record\n"
@@ -608,6 +611,10 @@ static int do_command(void)
bIterate = 0;
tdb_transaction_commit(tdb);
return 0;
+ case CMD_REPACK:
+ bIterate = 0;
+ tdb_repack(tdb);
+ return 0;
case CMD_TRANSACTION_CANCEL:
bIterate = 0;
tdb_transaction_cancel(tdb);