]> git.sur5r.net Git - bacula/bacula/commitdiff
Add more plugin restore debug code.
authorKern Sibbald <kern@sibbald.com>
Sat, 4 Oct 2008 10:50:50 +0000 (10:50 +0000)
committerKern Sibbald <kern@sibbald.com>
Sat, 4 Oct 2008 10:50:50 +0000 (10:50 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7700 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/filed/fd_plugins.c
bacula/src/findlib/bfile.c
bacula/src/findlib/create_file.c
bacula/src/version.h
bacula/technotes-2.5

index cec7f7ec941c04c405e3874256d1e47bf304bbe1..0d52728dddbe69af32ea83dd16db5fe3fed0640a 100644 (file)
@@ -341,7 +341,8 @@ int plugin_create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace)
    bpContext *plugin_ctx = (bpContext *)jcr->plugin_ctx;
    Plugin *plugin = (Plugin *)jcr->plugin;
    struct restore_pkt rp;
-   mode_t mode;
+   int flags;
+   int rc;
 
    if (!set_cmd_plugin(bfd, jcr)) {
       return CF_ERROR;
@@ -363,15 +364,24 @@ int plugin_create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace)
    rp.replace = jcr->replace;
    rp.create_status = CF_ERROR;
    Dmsg1(dbglvl, "call plugin createFile=%s\n", rp.ofname);
-   if (plug_func(plugin)->createFile(plugin_ctx, &rp) != bRC_OK) {
+   rc = plug_func(plugin)->createFile(plugin_ctx, &rp);
+   if (rc != bRC_OK) {
+      Qmsg2(jcr, M_ERROR, 0, _("Plugin createFile call failed. Stat=%d file=%s\n"),
+            rc, attr->ofname);
       return CF_ERROR;
    }
-   if (rp.create_status == CF_ERROR || rp.create_status == CF_CREATED) {
-      return rp.create_status;
+   if (rp.create_status == CF_ERROR) {
+      Qmsg1(jcr, M_ERROR, 0, _("Plugin createFile call failed. Returned CF_ERROR file=%s\n"),
+            attr->ofname);
+      return CF_ERROR;
+   }
+   /* Created link or directory? */
+   if (rp.create_status == CF_CREATED) {
+      return rp.create_status;        /* yes, no need to bopen */
    }
-   mode =  O_WRONLY | O_CREAT | O_TRUNC | O_BINARY;
+   flags =  O_WRONLY | O_CREAT | O_TRUNC | O_BINARY;
    Dmsg0(dbglvl, "call bopen\n");
-   if ((bopen(bfd, attr->ofname, mode, S_IRUSR | S_IWUSR)) < 0) {
+   if ((bopen(bfd, attr->ofname, flags, S_IRUSR | S_IWUSR)) < 0) {
       berrno be;
       be.set_errno(bfd->berrno);
       Qmsg2(jcr, M_ERROR, 0, _("Could not create %s: ERR=%s\n"),
index 17bdcec500cc435b5ca77f7b7de83e683409ef46..778f49149e0e67690ab6dfc33087e26a8f067baa 100644 (file)
@@ -420,16 +420,19 @@ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode)
 
    if (bfd->cmd_plugin && plugin_bopen) {
       int rtnstat;
-      Dmsg1(000, "call plugin_bopen fname=%s\n", fname);
+      Dmsg1(50, "call plugin_bopen fname=%s\n", fname);
       rtnstat = plugin_bopen(bfd, fname, flags, mode);
       if (rtnstat >= 0) {
          if (flags & O_CREAT || flags & O_WRONLY) {   /* Open existing for write */
+            Dmsg1(50, "plugin_open for write OK file=%s.\n", fname);
             bfd->mode = BF_WRITE;
          } else {
+            Dmsg1(50, "plugin_open for read OK file=%s.\n", fname);
             bfd->mode = BF_READ;
          }
       } else {
          bfd->mode = BF_CLOSED;
+         Dmsg1(000, "plugin_bopen returned bad status=%d\n", rtnstat);
       }
       free_pool_memory(win32_fname_wchar);
       free_pool_memory(win32_fname);
index 4a512c4e992b8635fe71acc5184d2091ba55d467..9e6f080ee46b18278e37637a70f56888bda3246d 100644 (file)
@@ -71,7 +71,8 @@ static int path_already_seen(JCR *jcr, char *path, int pnl);
  */
 int create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace)
 {
-   mode_t new_mode, parent_mode, mode;
+   mode_t new_mode, parent_mode;
+   int flags;
    uid_t uid;
    gid_t gid;
    int pnl;
@@ -205,9 +206,9 @@ int create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace)
       case FT_REGE:
       case FT_REG:
          Dmsg1(100, "Create=%s\n", attr->ofname);
-         mode =  O_WRONLY | O_CREAT | O_TRUNC | O_BINARY; /*  O_NOFOLLOW; */
+         flags =  O_WRONLY | O_CREAT | O_TRUNC | O_BINARY; /*  O_NOFOLLOW; */
          if (IS_CTG(attr->statp.st_mode)) {
-            mode |= O_CTG;               /* set contiguous bit if needed */
+            flags |= O_CTG;              /* set contiguous bit if needed */
          }
          if (is_bopen(bfd)) {
             Qmsg1(jcr, M_ERROR, 0, _("bpkt already open fid=%d\n"), bfd->fid);
@@ -215,7 +216,7 @@ int create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace)
          }
       
 
-         if ((bopen(bfd, attr->ofname, mode, S_IRUSR | S_IWUSR)) < 0) {
+         if ((bopen(bfd, attr->ofname, flags, S_IRUSR | S_IWUSR)) < 0) {
             berrno be;
             be.set_errno(bfd->berrno);
             Qmsg2(jcr, M_ERROR, 0, _("Could not create %s: ERR=%s\n"),
@@ -265,7 +266,7 @@ int create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace)
          if (attr->type == FT_RAW || attr->type == FT_FIFO) {
             btimer_t *tid;
             Dmsg1(400, "FT_RAW|FT_FIFO %s\n", attr->ofname);
-            mode =  O_WRONLY | O_BINARY;
+            flags =  O_WRONLY | O_BINARY;
             /* Timeout open() in 60 seconds */
             if (attr->type == FT_FIFO) {
                Dmsg0(400, "Set FIFO timer\n");
@@ -276,8 +277,8 @@ int create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace)
             if (is_bopen(bfd)) {
                Qmsg1(jcr, M_ERROR, 0, _("bpkt already open fid=%d\n"), bfd->fid);
             }
-            Dmsg2(400, "open %s mode=0x%x\n", attr->ofname, mode);
-            if ((bopen(bfd, attr->ofname, mode, 0)) < 0) {
+            Dmsg2(400, "open %s flags=0x%x\n", attr->ofname, flags);
+            if ((bopen(bfd, attr->ofname, flags, 0)) < 0) {
                berrno be;
                be.set_errno(bfd->berrno);
                Qmsg2(jcr, M_ERROR, 0, _("Could not open %s: ERR=%s\n"),
index 48cb5fde0f3e7aecb0428a609f410e08b93faadd..bc4628c36e827d0d4083b3f68cef5402784abef0 100644 (file)
@@ -4,8 +4,8 @@
 
 #undef  VERSION
 #define VERSION "2.5.10"
-#define BDATE   "03 October 2008"
-#define LSMDATE "03Oct08"
+#define BDATE   "04 October 2008"
+#define LSMDATE "04Oct08"
 
 #define PROG_COPYRIGHT "Copyright (C) %d-2008 Free Software Foundation Europe e.V.\n"
 #define BYEAR "2008"       /* year for copyright messages in progs */
index 3aa54b784a344d649e40e0b37a72e78916d6cf03..e1b16bdc7258f383b0838864b84ee0e027ea116e 100644 (file)
@@ -17,6 +17,8 @@ dbdriver
 remove reader/writer in FOPTS????
 
 General:
+04Oct08
+kes  Add more plugin restore debug code.
 03Oct08
 kes  Fix plugin_bwrite - plugin-blseek mixup pointed out by James.
 kes  Rewrite plugin restore interface a bit to correspond to how Bacula