]> git.sur5r.net Git - bacula/bacula/commitdiff
kes Apply patch from bug #1187. It prints an error message if the
authorKern Sibbald <kern@sibbald.com>
Wed, 19 Nov 2008 19:34:48 +0000 (19:34 +0000)
committerKern Sibbald <kern@sibbald.com>
Wed, 19 Nov 2008 19:34:48 +0000 (19:34 +0000)
     Maximum Block Size in the SD is too big.
kes  Increase Maximum Block Size to 2,000,000 bytes.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@8062 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/kernstodo
bacula/src/plugins/dir/Makefile [deleted file]
bacula/src/stored/block.h
bacula/src/stored/stored_conf.c
bacula/technotes-2.5

index fd1b19e53f4af8b14e913234b535bd4fe2a8140e..d229aa5e2b11ae8baf71ad2eee28f0a0a681337e 100644 (file)
@@ -72,6 +72,9 @@ Professional Needs:
 
 Priority:
 ================
+- Possibly allow manual "purge" to purge a Volume that has not
+  yet been written (even if FirstWritten time is zero) see ua_purge.c
+  is_volume_purged().
 - Add disk block detection bsr code (make it work).
 - Remove done bsrs.
 - Add blast attributes to DIR to SD.
diff --git a/bacula/src/plugins/dir/Makefile b/bacula/src/plugins/dir/Makefile
deleted file mode 100644 (file)
index 1b18a57..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Simple Makefile for building test Dir plugins for Bacula
-#
-
-# No optimization for now for easy debugging
-CC = g++ -g -O0 -Wall
-
-DIRDIR=../../dird
-SRCDIR=../..
-LIBDIR=../../lib
-
-.SUFFIXES:    .c .o
-.c.o:
-       $(CC) -I${SRCDIR} -I${DIRDIR} -DTEST_PROGRAM -c $<
-
-test: main example-plugin-dir.so
-
-dir_plugins.o: ${DIRDIR}/dir_plugins.h ${DIRDIR}/dir_plugins.c
-       $(CC)  -I${SRCDIR} -I${DIRDIR} -DTEST_PROGRAM -c ${DIRDIR}/dir_plugins.c 
-
-main: dir_plugins.o
-       $(CC) -L${LIBDIR} dir_plugins.o -o main -lbac -lpthread -lssl -l crypto -ldl
-
-example-plugin-dir.o: example-plugin-dir.c ${DIRDIR}/dir_plugins.h
-       $(CC) -fPIC -I../.. -I${DIRDIR} -c example-plugin-dir.c
-
-example-plugin-dir.so: example-plugin-dir.o 
-       $(CC) -shared example-plugin-dir.o -o example-plugin-dir.so
-
-clean:
-       rm -f main *.so *.o 1 2 3
index 132a75114d3608a0aa174d232e51f516ef49b738..137914237b981645ee9ea2cc439d05cee1bbdd3d 100644 (file)
@@ -38,7 +38,7 @@
 #ifndef __BLOCK_H
 #define __BLOCK_H 1
 
-#define MAX_BLOCK_LENGTH  (1024*1024 + 1) /* this is a sort of sanity check */
+#define MAX_BLOCK_LENGTH  2000000       /* this is a sort of sanity check */
 #define DEFAULT_BLOCK_SIZE (512 * 126)  /* 64,512 N.B. do not use 65,636 here */
 
 /* Block Header definitions. */
index 5e1d84abfa41167711401ad880d5669fe2ad461e..79153ab836adea545aff141f5cdf05ceedd8d443 100644 (file)
@@ -45,6 +45,7 @@ RES **res_head = sres_head;
 
 /* Forward referenced subroutines */
 static void store_devtype(LEX *lc, RES_ITEM *item, int index, int pass);
+static void store_maxblocksize(LEX *lc, RES_ITEM *item, int index, int pass);
 
 
 /* We build the current resource here statically,
@@ -152,7 +153,7 @@ static RES_ITEM dev_items[] = {
    {"volumepollinterval",    store_time,   ITEM(res_dev.vol_poll_interval), 0, 0, 0},
    {"maximumrewindwait",     store_time,   ITEM(res_dev.max_rewind_wait), 0, ITEM_DEFAULT, 5 * 60},
    {"minimumblocksize",      store_pint32,   ITEM(res_dev.min_block_size), 0, 0, 0},
-   {"maximumblocksize",      store_pint32,   ITEM(res_dev.max_block_size), 0, 0, 0},
+   {"maximumblocksize",      store_maxblocksize, ITEM(res_dev.max_block_size), 0, 0, 0},
    {"maximumvolumesize",     store_size,   ITEM(res_dev.max_volume_size), 0, 0, 0},
    {"maximumfilesize",       store_size,   ITEM(res_dev.max_file_size), 0, ITEM_DEFAULT, 1000000000},
    {"volumecapacity",        store_size,   ITEM(res_dev.volume_capacity), 0, 0, 0},
@@ -243,6 +244,22 @@ static void store_devtype(LEX *lc, RES_ITEM *item, int index, int pass)
    set_bit(index, res_all.hdr.item_present);
 }
 
+/*
+ * Store Maximum Block Size, and check it is not greater than MAX_BLOCK_LENGTH
+ *
+ */
+static void store_maxblocksize(LEX *lc, RES_ITEM *item, int index, int pass)
+{
+   lex_get_token(lc, T_PINT32);
+   if (lc->pint32_val <= MAX_BLOCK_LENGTH) {
+      *(uint32_t *)(item->value) = lc->pint32_val;
+      scan_to_eol(lc);
+      set_bit(index, res_all.hdr.item_present);
+   } else {
+      scan_err2(lc, _("Maximum Block Size configured value %u is greater than allowed maximum: %u"), lc->pint32_val, MAX_BLOCK_LENGTH );
+   }
+}
+
 
 /* Dump contents of resource */
 void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fmt, ...), void *sock)
index f520f7677105237532104f0aa185c26725929d93..19304dccfd5f4b848595b9d086da2ef291f22394 100644 (file)
@@ -11,6 +11,9 @@ mixed priorities
 
 General:
 19Nov08
+kes  Apply patch from bug #1187. It prints an error message if the
+     Maximum Block Size in the SD is too big.  
+kes  Increase Maximum Block Size to 2,000,000 bytes.
 kes  Use doubly linked bsr list so that consumed bsrs may be
      removed.  Removing not yet implemented.
 18Nov08