Print this page
NEX-9532 NDMP: readdir errors when file/directory has special characters
Reviewed by: Peer Dampmann <peer.dampmann@nexenta.com>
Reviewed by: Alexander Eremin <alexander.eremin@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
NEX-5801 Snapshots left over after failed backups
Reviewed by: Rick Mesta <rick.mesta@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Revert "NEX-5801 Snapshots left over after failed backups"
This reverts commit f182fb95f09036db71fbfc6f0a6b90469b761f21.
NEX-5801 Snapshots left over after failed backups
Reviewed by: Rick Mesta <rick.mesta@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
NEX-2911 NDMP logging should use syslog and is too chatty

*** 35,44 **** --- 35,45 ---- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* Copyright (c) 1996, 1997 PDC, Network Appliance. All Rights Reserved */ /* Copyright (c) 2007, The Storage Networking Industry Association. */ + /* Copyright 2017 Nexenta Systems, Inc. All rights reserved. */ /* * File history callback functions called by backup modules. NDMP file history * supports 2 file history models: path based and inode/directory based. * Backup/recover modules similar to unix dump/restore utilize the
*** 51,60 **** --- 52,62 ---- * included with the SDK uses the path based model. */ #include <sys/stat.h> #include <sys/types.h> + #include <syslog.h> #include <dirent.h> #include <errno.h> #include <stdlib.h> #include <string.h> #include "ndmpd.h"
*** 132,151 **** session->ns_fh.fh_path_index == N_PATH_ENTRIES || session->ns_fh.fh_path_name_buf_index + strlen(name) + 1 > PATH_NAMEBUF_SIZE) { ndmp_fh_add_unix_path_request request; - NDMP_LOG(LOG_DEBUG, - "sending %ld entries", session->ns_fh.fh_path_index); request.paths.paths_val = session->ns_fh.fh_path_entries; request.paths.paths_len = session->ns_fh.fh_path_index; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_UNIX_PATH, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! NDMP_LOG(LOG_DEBUG, "Sending file history data"); return (-1); } session->ns_fh.fh_path_index = 0; session->ns_fh.fh_path_name_buf_index = 0; } --- 134,151 ---- session->ns_fh.fh_path_index == N_PATH_ENTRIES || session->ns_fh.fh_path_name_buf_index + strlen(name) + 1 > PATH_NAMEBUF_SIZE) { ndmp_fh_add_unix_path_request request; request.paths.paths_val = session->ns_fh.fh_path_entries; request.paths.paths_len = session->ns_fh.fh_path_index; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_UNIX_PATH, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! syslog(LOG_ERR, "Sending file history data failed"); return (-1); } session->ns_fh.fh_path_index = 0; session->ns_fh.fh_path_name_buf_index = 0; }
*** 224,242 **** session->ns_fh.fh_dir_index == N_DIR_ENTRIES || session->ns_fh.fh_dir_name_buf_index + strlen(name) + 1 > DIR_NAMEBUF_SIZE) { ndmp_fh_add_unix_dir_request request; - NDMP_LOG(LOG_DEBUG, - "sending %ld entries", session->ns_fh.fh_dir_index); - request.dirs.dirs_val = session->ns_fh.fh_dir_entries; request.dirs.dirs_len = session->ns_fh.fh_dir_index; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_UNIX_DIR, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! NDMP_LOG(LOG_DEBUG, "Sending file history data"); return (-1); } session->ns_fh.fh_dir_index = 0; session->ns_fh.fh_dir_name_buf_index = 0; } --- 224,239 ---- session->ns_fh.fh_dir_index == N_DIR_ENTRIES || session->ns_fh.fh_dir_name_buf_index + strlen(name) + 1 > DIR_NAMEBUF_SIZE) { ndmp_fh_add_unix_dir_request request; request.dirs.dirs_val = session->ns_fh.fh_dir_entries; request.dirs.dirs_len = session->ns_fh.fh_dir_index; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_UNIX_DIR, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! syslog(LOG_DEBUG, "Sending file history data"); return (-1); } session->ns_fh.fh_dir_index = 0; session->ns_fh.fh_dir_name_buf_index = 0; }
*** 311,323 **** if (file_stat == NULL || (ndmp_syncfh && session->ns_fh.fh_node_index != 0) || session->ns_fh.fh_node_index == N_NODE_ENTRIES) { ndmp_fh_add_unix_node_request request; - NDMP_LOG(LOG_DEBUG, - "sending %ld entries", session->ns_fh.fh_node_index); - request.nodes.nodes_val = session->ns_fh.fh_node_entries; request.nodes.nodes_len = session->ns_fh.fh_node_index; /* * Need to send Dir entry as well. Since Dir entry is more than * Node entry, we may send a Node entry that hasn't have --- 308,317 ----
*** 327,337 **** (void) ndmpd_api_file_history_dir_v2(session, 0, 0, 0); if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_UNIX_NODE, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! NDMP_LOG(LOG_DEBUG, "Sending file history data"); return (-1); } session->ns_fh.fh_node_index = 0; } if (file_stat == NULL) --- 321,331 ---- (void) ndmpd_api_file_history_dir_v2(session, 0, 0, 0); if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_UNIX_NODE, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! syslog(LOG_ERR, "Sending file history data failed"); return (-1); } session->ns_fh.fh_node_index = 0; } if (file_stat == NULL)
*** 407,426 **** if (name == NULL || session->ns_fh_v3.fh_file_index == N_FILE_ENTRIES || session->ns_fh_v3.fh_file_name_buf_index + strlen(name) + 1 > PATH_NAMEBUF_SIZE) { - NDMP_LOG(LOG_DEBUG, "sending %ld entries", - session->ns_fh_v3.fh_file_index); - request.files.files_len = session->ns_fh_v3.fh_file_index; request.files.files_val = session->ns_fh_v3.fh_files; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_FILE, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! NDMP_LOG(LOG_DEBUG, ! "Sending ndmp_fh_add_file request"); return (-1); } session->ns_fh_v3.fh_file_index = 0; session->ns_fh_v3.fh_file_name_buf_index = 0; --- 401,417 ---- if (name == NULL || session->ns_fh_v3.fh_file_index == N_FILE_ENTRIES || session->ns_fh_v3.fh_file_name_buf_index + strlen(name) + 1 > PATH_NAMEBUF_SIZE) { request.files.files_len = session->ns_fh_v3.fh_file_index; request.files.files_val = session->ns_fh_v3.fh_files; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_FILE, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! syslog(LOG_ERR, ! "Sending ndmp_fh_add_file request failed"); return (-1); } session->ns_fh_v3.fh_file_index = 0; session->ns_fh_v3.fh_file_name_buf_index = 0;
*** 537,556 **** if (name == NULL || session->ns_fh_v3.fh_dir_index == N_DIR_ENTRIES || session->ns_fh_v3.fh_dir_name_buf_index + strlen(name) + 1 > DIR_NAMEBUF_SIZE) { - NDMP_LOG(LOG_DEBUG, "sending %ld entries", - session->ns_fh_v3.fh_dir_index); - request.dirs.dirs_val = session->ns_fh_v3.fh_dirs; request.dirs.dirs_len = session->ns_fh_v3.fh_dir_index; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_DIR, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! NDMP_LOG(LOG_DEBUG, ! "Sending ndmp_fh_add_dir request"); return (-1); } session->ns_fh_v3.fh_dir_index = 0; session->ns_fh_v3.fh_dir_name_buf_index = 0; --- 528,544 ---- if (name == NULL || session->ns_fh_v3.fh_dir_index == N_DIR_ENTRIES || session->ns_fh_v3.fh_dir_name_buf_index + strlen(name) + 1 > DIR_NAMEBUF_SIZE) { request.dirs.dirs_val = session->ns_fh_v3.fh_dirs; request.dirs.dirs_len = session->ns_fh_v3.fh_dir_index; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_DIR, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! syslog(LOG_ERR, ! "Sending ndmp_fh_add_dir request failed"); return (-1); } session->ns_fh_v3.fh_dir_index = 0; session->ns_fh_v3.fh_dir_name_buf_index = 0;
*** 643,654 **** * A 0 file_stat pointer indicates that any buffered data should * be sent. */ if (file_stat == NULL || session->ns_fh_v3.fh_node_index == N_NODE_ENTRIES) { - NDMP_LOG(LOG_DEBUG, "sending %ld entries", - session->ns_fh_v3.fh_node_index); /* * Need to send Dir entry as well. Since Dir entry is more * than a Node entry, we may send a Node entry that hasn't * had its Dir entry sent. Therefore, we need to flush Dir --- 631,640 ----
*** 660,671 **** request.nodes.nodes_val = session->ns_fh_v3.fh_nodes; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_NODE, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! NDMP_LOG(LOG_DEBUG, ! "Sending ndmp_fh_add_node request"); return (-1); } session->ns_fh_v3.fh_node_index = 0; } --- 646,657 ---- request.nodes.nodes_val = session->ns_fh_v3.fh_nodes; if (ndmp_send_request_lock(session->ns_connection, NDMP_FH_ADD_NODE, NDMP_NO_ERR, (void *) &request, 0) < 0) { ! syslog(LOG_ERR, ! "Sending ndmp_fh_add_node request failed"); return (-1); } session->ns_fh_v3.fh_node_index = 0; }
*** 737,768 **** ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; if (!cbp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cookie is NULL"); } else if (!path) { err = -1; ! NDMP_LOG(LOG_DEBUG, "path is NULL"); } else if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! NDMP_LOG(LOG_DEBUG, "nlp is NULL"); } else err = 0; if (err != 0) return (0); - NDMP_LOG(LOG_DEBUG, "pname(%s)", path); - err = 0; if (NLP_ISSET(nlp, NLPF_FH)) { if (!NLP_ISSET(nlp, NLPF_DIRECT)) { ! NDMP_LOG(LOG_DEBUG, "DAR NOT SET!"); off = 0LL; } params = get_params(cbp->fh_cookie); if (!params || !params->mp_file_history_path_func) { --- 723,752 ---- ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; if (!cbp) { err = -1; ! syslog(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! syslog(LOG_DEBUG, "cookie is NULL"); } else if (!path) { err = -1; ! syslog(LOG_DEBUG, "path is NULL"); } else if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! syslog(LOG_DEBUG, "nlp is NULL"); } else err = 0; if (err != 0) return (0); err = 0; if (NLP_ISSET(nlp, NLPF_FH)) { if (!NLP_ISSET(nlp, NLPF_DIRECT)) { ! syslog(LOG_DEBUG, "DAR NOT SET!"); off = 0LL; } params = get_params(cbp->fh_cookie); if (!params || !params->mp_file_history_path_func) {
*** 771,781 **** char *p = ndmp_get_relative_path(get_backup_path_v3(params), path); if ((err = ndmpd_api_file_history_file_v3(cbp-> fh_cookie, p, stp, off)) < 0) ! NDMP_LOG(LOG_DEBUG, "\"%s\" %d", path, err); } } return (err); } --- 755,765 ---- char *p = ndmp_get_relative_path(get_backup_path_v3(params), path); if ((err = ndmpd_api_file_history_file_v3(cbp-> fh_cookie, p, stp, off)) < 0) ! syslog(LOG_DEBUG, "\"%s\" %d", path, err); } } return (err); }
*** 799,826 **** DIR *dirp; char dirpath[PATH_MAX]; if (!cbp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cookie is NULL"); } else if (!dir) { err = -1; ! NDMP_LOG(LOG_DEBUG, "dir is NULL"); } else if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! NDMP_LOG(LOG_DEBUG, "nlp is NULL"); } else err = 0; if (err != 0) return (0); - NDMP_LOG(LOG_DEBUG, "d(%s)", dir); - if (!NLP_ISSET(nlp, NLPF_FH)) return (0); /* * Veritas net_backup accepts only 2 as the inode number of the backup --- 783,808 ---- DIR *dirp; char dirpath[PATH_MAX]; if (!cbp) { err = -1; ! syslog(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! syslog(LOG_DEBUG, "cookie is NULL"); } else if (!dir) { err = -1; ! syslog(LOG_DEBUG, "dir is NULL"); } else if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! syslog(LOG_DEBUG, "nlp is NULL"); } else err = 0; if (err != 0) return (0); if (!NLP_ISSET(nlp, NLPF_FH)) return (0); /* * Veritas net_backup accepts only 2 as the inode number of the backup
*** 838,848 **** * been set. Backup root directory is exception. We * always send the dir file history records of it. */ if (pino != ROOT_INODE && !dbm_getone(nlp->nlp_bkmap, (u_longlong_t)stp->st_ino)) { ! NDMP_LOG(LOG_DEBUG, "nothing below here"); return (0); } params = nlp->nlp_params; if (!params || !params->mp_file_history_dir_func) --- 820,830 ---- * been set. Backup root directory is exception. We * always send the dir file history records of it. */ if (pino != ROOT_INODE && !dbm_getone(nlp->nlp_bkmap, (u_longlong_t)stp->st_ino)) { ! syslog(LOG_DEBUG, "nothing below here"); return (0); } params = nlp->nlp_params; if (!params || !params->mp_file_history_dir_func)
*** 857,867 **** do { nml = PATH_MAX; err = dp_readdir(dirp, &pos, nm, &nml, &ino); if (err != 0) { ! NDMP_LOG(LOG_DEBUG, "%d reading pos %u dir \"%s\"", err, pos, dir); break; } if (nml == 0) break; --- 839,849 ---- do { nml = PATH_MAX; err = dp_readdir(dirp, &pos, nm, &nml, &ino); if (err != 0) { ! syslog(LOG_DEBUG, "%d reading pos %u dir \"%s\"", err, pos, dir); break; } if (nml == 0) break;
*** 869,879 **** if (pino == ROOT_INODE) { if (rootfs_dot_or_dotdot(nm)) ino = ROOT_INODE; } else if (ino == nlp->nlp_bkdirino && IS_DOTDOT(nm)) { - NDMP_LOG(LOG_DEBUG, "nm(%s): %lu", nm, ino); ino = ROOT_INODE; } if (!dbm_getone(nlp->nlp_bkmap, (u_longlong_t)ino)) continue; --- 851,860 ----
*** 880,898 **** /* * If the entry is on exclusion list dont send the info */ if (tlm_is_excluded(dir, nm, ndmp_excl_list)) { ! NDMP_LOG(LOG_DEBUG, ! "name \"%s\" skipped", nm == 0 ? "nil" : nm); continue; } err = (*params->mp_file_history_dir_func)(cbp->fh_cookie, nm, ino, pino); if (err < 0) { ! NDMP_LOG(LOG_DEBUG, "\"%s\": %d", dir, err); break; } /* * This is a requirement by some DMA's (net_vault) that during --- 861,879 ---- /* * If the entry is on exclusion list dont send the info */ if (tlm_is_excluded(dir, nm, ndmp_excl_list)) { ! syslog(LOG_DEBUG, ! "name \"%s\" skipped", *nm == '\0' ? "nil" : nm); continue; } err = (*params->mp_file_history_dir_func)(cbp->fh_cookie, nm, ino, pino); if (err < 0) { ! syslog(LOG_ERR, "\"%s\": %d", dir, err); break; } /* * This is a requirement by some DMA's (net_vault) that during
*** 906,925 **** (void) strlcpy(dirpath, dir, PATH_MAX); (void) strlcat(dirpath, "/", PATH_MAX); (void) strlcat(dirpath, nm, PATH_MAX); err = stat64(dirpath, &ret_attr); if (err != 0) { ! NDMP_LOG(LOG_DEBUG, "Error looking up %s", nm); break; } if (S_ISDIR(ret_attr.st_mode)) { err = (*params->mp_file_history_node_func)(cbp-> fh_cookie, ino, &ret_attr, 0); if (err < 0) { ! NDMP_LOG(LOG_DEBUG, "\"%s/\": %d", dir, err); break; } } } --- 887,906 ---- (void) strlcpy(dirpath, dir, PATH_MAX); (void) strlcat(dirpath, "/", PATH_MAX); (void) strlcat(dirpath, nm, PATH_MAX); err = stat64(dirpath, &ret_attr); if (err != 0) { ! syslog(LOG_ERR, "Error looking up %s", nm); break; } if (S_ISDIR(ret_attr.st_mode)) { err = (*params->mp_file_history_node_func)(cbp-> fh_cookie, ino, &ret_attr, 0); if (err < 0) { ! syslog(LOG_ERR, "\"%s/\": %d", dir, err); break; } } }
*** 944,995 **** ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; if (!cbp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cookie is NULL"); } else if (!dir) { err = -1; ! NDMP_LOG(LOG_DEBUG, "dir is NULL"); } else if (!file) { err = -1; ! NDMP_LOG(LOG_DEBUG, "file is NULL"); } else if (!stp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "stp is NULL"); } else if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! NDMP_LOG(LOG_DEBUG, "nlp is NULL"); } else { err = 0; } if (err != 0) return (0); - NDMP_LOG(LOG_DEBUG, "d(%s), f(%s)", dir, file); err = 0; if (NLP_ISSET(nlp, NLPF_FH)) { if (!NLP_ISSET(nlp, NLPF_DIRECT)) off = 0LL; if (stp->st_ino == nlp->nlp_bkdirino) { ino = ROOT_INODE; - NDMP_LOG(LOG_DEBUG, - "bkroot %d -> %d", stp->st_ino, ROOT_INODE); } else ino = stp->st_ino; params = nlp->nlp_params; if (!params || !params->mp_file_history_node_func) err = -1; else if ((err = (*params->mp_file_history_node_func)(cbp-> fh_cookie, ino, stp, off)) < 0) ! NDMP_LOG(LOG_DEBUG, "\"%s/%s\" %d", dir, file, err); } return (err); } --- 925,973 ---- ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; if (!cbp) { err = -1; ! syslog(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! syslog(LOG_DEBUG, "cookie is NULL"); } else if (!dir) { err = -1; ! syslog(LOG_DEBUG, "dir is NULL"); } else if (!file) { err = -1; ! syslog(LOG_DEBUG, "file is NULL"); } else if (!stp) { err = -1; ! syslog(LOG_DEBUG, "stp is NULL"); } else if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! syslog(LOG_DEBUG, "nlp is NULL"); } else { err = 0; } if (err != 0) return (0); err = 0; if (NLP_ISSET(nlp, NLPF_FH)) { if (!NLP_ISSET(nlp, NLPF_DIRECT)) off = 0LL; if (stp->st_ino == nlp->nlp_bkdirino) { ino = ROOT_INODE; } else ino = stp->st_ino; params = nlp->nlp_params; if (!params || !params->mp_file_history_node_func) err = -1; else if ((err = (*params->mp_file_history_node_func)(cbp-> fh_cookie, ino, stp, off)) < 0) ! syslog(LOG_ERR, "\"%s/%s\" %d", dir, file, err); } return (err); }
*** 1006,1028 **** int rv; mem_ndmp_name_v3_t *ep; rv = -1; if (!params) { ! NDMP_LOG(LOG_DEBUG, "params == NULL"); } else if (!params->mp_file_recovered_func) { ! NDMP_LOG(LOG_DEBUG, "paramsfile_recovered_func == NULL"); } else if (!nlp) { ! NDMP_LOG(LOG_DEBUG, "nlp == NULL"); } else if (idx < 0) { ! NDMP_LOG(LOG_DEBUG, "idx(%d) < 0", idx); } else if (!(ep = (mem_ndmp_name_v3_t *)MOD_GETNAME(params, idx))) { ! NDMP_LOG(LOG_DEBUG, "nlist[%d] == NULL", idx); } else if (!ep->nm3_opath) { ! NDMP_LOG(LOG_DEBUG, "nlist[%d].nm3_opath == NULL", idx); } else { ! NDMP_LOG(LOG_DEBUG, "ep[%d].nm3_opath \"%s\"", idx, ep->nm3_opath); rv = MOD_FILERECOVERD(params, ep->nm3_opath, stat); } return (rv); --- 984,1006 ---- int rv; mem_ndmp_name_v3_t *ep; rv = -1; if (!params) { ! syslog(LOG_DEBUG, "params == NULL"); } else if (!params->mp_file_recovered_func) { ! syslog(LOG_DEBUG, "paramsfile_recovered_func == NULL"); } else if (!nlp) { ! syslog(LOG_DEBUG, "nlp == NULL"); } else if (idx < 0) { ! syslog(LOG_DEBUG, "idx(%d) < 0", idx); } else if (!(ep = (mem_ndmp_name_v3_t *)MOD_GETNAME(params, idx))) { ! syslog(LOG_DEBUG, "nlist[%d] == NULL", idx); } else if (!ep->nm3_opath) { ! syslog(LOG_DEBUG, "nlist[%d].nm3_opath == NULL", idx); } else { ! syslog(LOG_DEBUG, "ep[%d].nm3_opath \"%s\"", idx, ep->nm3_opath); rv = MOD_FILERECOVERD(params, ep->nm3_opath, stat); } return (rv);
*** 1044,1070 **** ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; int idx = (int)ll_idx; if (!cbp) { ! NDMP_LOG(LOG_DEBUG, "cbp is NULL"); return (-1); } if (!name) { ! NDMP_LOG(LOG_DEBUG, "name is NULL"); return (-1); } - NDMP_LOG(LOG_DEBUG, "name: \"%s\", idx: %d", name, idx); - nlp = ndmp_get_nlp(cbp->fh_cookie); if (!nlp) { ! NDMP_LOG(LOG_DEBUG, "nlp is NULL"); return (-1); } if (idx < 0 || idx >= nlp->nlp_nfiles) { ! NDMP_LOG(LOG_DEBUG, "Invalid idx: %d", idx); return (-1); } params = nlp->nlp_params; if (!params || !params->mp_file_recovered_func) return (-1); --- 1022,1046 ---- ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; int idx = (int)ll_idx; if (!cbp) { ! syslog(LOG_DEBUG, "cbp is NULL"); return (-1); } if (!name) { ! syslog(LOG_DEBUG, "name is NULL"); return (-1); } nlp = ndmp_get_nlp(cbp->fh_cookie); if (!nlp) { ! syslog(LOG_DEBUG, "nlp is NULL"); return (-1); } if (idx < 0 || idx >= nlp->nlp_nfiles) { ! syslog(LOG_DEBUG, "Invalid idx: %d", idx); return (-1); } params = nlp->nlp_params; if (!params || !params->mp_file_recovered_func) return (-1);
*** 1272,1282 **** case 3: case 4: ndmpd_file_history_cleanup_v3(session, send_flag); break; default: ! NDMP_LOG(LOG_DEBUG, "Unknown version %d", session->ns_protocol_version); } } /* --- 1248,1258 ---- case 3: case 4: ndmpd_file_history_cleanup_v3(session, send_flag); break; default: ! syslog(LOG_ERR, "Unknown version %d", session->ns_protocol_version); } } /*
*** 1305,1319 **** fh_requested(void *cookie) { ndmp_lbr_params_t *nlp; if ((nlp = ndmp_get_nlp(cookie)) == NULL) { ! NDMP_LOG(LOG_DEBUG, "nlp is NULL"); return (FALSE); } ! NDMP_LOG(LOG_DEBUG, "nlp_fh %c", NDMP_YORN(NLP_ISSET(nlp, NLPF_FH))); return (NLP_ISSET(nlp, NLPF_FH)); } --- 1281,1295 ---- fh_requested(void *cookie) { ndmp_lbr_params_t *nlp; if ((nlp = ndmp_get_nlp(cookie)) == NULL) { ! syslog(LOG_DEBUG, "nlp is NULL"); return (FALSE); } ! syslog(LOG_DEBUG, "nlp_fh %c", NDMP_YORN(NLP_ISSET(nlp, NLPF_FH))); return (NLP_ISSET(nlp, NLPF_FH)); }
*** 1335,1370 **** int err; ndmpd_module_params_t *params; if (!cbp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cookie is NULL"); } else if (!path) { err = -1; ! NDMP_LOG(LOG_DEBUG, "path is NULL"); } else if (!stp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "stp is NULL"); } else err = 0; if (err != 0) return (0); ! NDMP_LOG(LOG_DEBUG, "path: \"%s\"", path); err = 0; if (fh_requested(cbp->fh_cookie)) { params = get_params(cbp->fh_cookie); if (params == NULL || params->mp_file_history_path_func == NULL) err = -1; else if ((err = (*params->mp_file_history_path_func)(cbp-> fh_cookie, path, stp, 0)) < 0) ! NDMP_LOG(LOG_DEBUG, "\"%s\": %d", path, err); } return (err); } --- 1311,1346 ---- int err; ndmpd_module_params_t *params; if (!cbp) { err = -1; ! syslog(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! syslog(LOG_DEBUG, "cookie is NULL"); } else if (!path) { err = -1; ! syslog(LOG_DEBUG, "path is NULL"); } else if (!stp) { err = -1; ! syslog(LOG_DEBUG, "stp is NULL"); } else err = 0; if (err != 0) return (0); ! syslog(LOG_DEBUG, "path: \"%s\"", path); err = 0; if (fh_requested(cbp->fh_cookie)) { params = get_params(cbp->fh_cookie); if (params == NULL || params->mp_file_history_path_func == NULL) err = -1; else if ((err = (*params->mp_file_history_path_func)(cbp-> fh_cookie, path, stp, 0)) < 0) ! syslog(LOG_DEBUG, "\"%s\": %d", path, err); } return (err); }
*** 1388,1417 **** DIR *dirp; char dirpath[PATH_MAX]; if (!cbp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cookie is NULL"); } else if (!dir) { err = -1; ! NDMP_LOG(LOG_DEBUG, "dir is NULL"); } else if (!stp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "stp is NULL"); } if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! NDMP_LOG(LOG_DEBUG, "nlp is NULL"); } else err = 0; if (err != 0) return (0); ! NDMP_LOG(LOG_DEBUG, "dir: \"%s\"", dir); if (!fh_requested(cbp->fh_cookie)) return (0); /* --- 1364,1393 ---- DIR *dirp; char dirpath[PATH_MAX]; if (!cbp) { err = -1; ! syslog(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! syslog(LOG_DEBUG, "cookie is NULL"); } else if (!dir) { err = -1; ! syslog(LOG_DEBUG, "dir is NULL"); } else if (!stp) { err = -1; ! syslog(LOG_DEBUG, "stp is NULL"); } if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! syslog(LOG_DEBUG, "nlp is NULL"); } else err = 0; if (err != 0) return (0); ! syslog(LOG_DEBUG, "dir: \"%s\"", dir); if (!fh_requested(cbp->fh_cookie)) return (0); /*
*** 1430,1440 **** * been set. Backup root directory is exception. We * always send the dir file history records of it. */ if (pino != ROOT_INODE && !dbm_getone(nlp->nlp_bkmap, (u_longlong_t)stp->st_ino)) { ! NDMP_LOG(LOG_DEBUG, "nothing below here"); return (0); } params = get_params(cbp->fh_cookie); if (params == NULL || params->mp_file_history_dir_func == NULL) { --- 1406,1416 ---- * been set. Backup root directory is exception. We * always send the dir file history records of it. */ if (pino != ROOT_INODE && !dbm_getone(nlp->nlp_bkmap, (u_longlong_t)stp->st_ino)) { ! syslog(LOG_DEBUG, "nothing below here"); return (0); } params = get_params(cbp->fh_cookie); if (params == NULL || params->mp_file_history_dir_func == NULL) {
*** 1450,1460 **** do { nml = PATH_MAX; err = dp_readdir(dirp, &pos, nm, &nml, &ino); if (err != 0) { ! NDMP_LOG(LOG_DEBUG, "%d reading pos %u dir \"%s\"", err, pos, dir); break; } if (nml == 0) break; --- 1426,1436 ---- do { nml = PATH_MAX; err = dp_readdir(dirp, &pos, nm, &nml, &ino); if (err != 0) { ! syslog(LOG_DEBUG, "%d reading pos %u dir \"%s\"", err, pos, dir); break; } if (nml == 0) break;
*** 1462,1482 **** if (pino == ROOT_INODE) { if (rootfs_dot_or_dotdot(nm)) ino = ROOT_INODE; } else if (ino == nlp->nlp_bkdirino && IS_DOTDOT(nm)) { ! NDMP_LOG(LOG_DEBUG, "nm(%s): %lu", nm, ino); ino = ROOT_INODE; } if (!dbm_getone(nlp->nlp_bkmap, (u_longlong_t)ino)) continue; err = (*params->mp_file_history_dir_func)(cbp->fh_cookie, nm, ino, pino); if (err < 0) { ! NDMP_LOG(LOG_DEBUG, "\"%s/%s\": %d", dir, nm, err); break; } /* * This is a requirement by some DMA's (net_vault) that during --- 1438,1458 ---- if (pino == ROOT_INODE) { if (rootfs_dot_or_dotdot(nm)) ino = ROOT_INODE; } else if (ino == nlp->nlp_bkdirino && IS_DOTDOT(nm)) { ! syslog(LOG_DEBUG, "nm(%s): %lu", nm, ino); ino = ROOT_INODE; } if (!dbm_getone(nlp->nlp_bkmap, (u_longlong_t)ino)) continue; err = (*params->mp_file_history_dir_func)(cbp->fh_cookie, nm, ino, pino); if (err < 0) { ! syslog(LOG_ERR, "\"%s/%s\": %d", dir, nm, err); break; } /* * This is a requirement by some DMA's (net_vault) that during
*** 1490,1509 **** (void) strlcpy(dirpath, dir, PATH_MAX); (void) strlcat(dirpath, "/", PATH_MAX); (void) strlcat(dirpath, nm, PATH_MAX); err = stat64(dirpath, &ret_attr); if (err != 0) { ! NDMP_LOG(LOG_DEBUG, ! "Error looking up %s", nm); break; } if (S_ISDIR(ret_attr.st_mode)) { err = (*params->mp_file_history_node_func)(cbp-> fh_cookie, ino, &ret_attr, 0); if (err < 0) { ! NDMP_LOG(LOG_DEBUG, "\"%s/\": %d", dir, err); break; } } } --- 1466,1485 ---- (void) strlcpy(dirpath, dir, PATH_MAX); (void) strlcat(dirpath, "/", PATH_MAX); (void) strlcat(dirpath, nm, PATH_MAX); err = stat64(dirpath, &ret_attr); if (err != 0) { ! syslog(LOG_ERR, ! "Error looking up %s failed", nm); break; } if (S_ISDIR(ret_attr.st_mode)) { err = (*params->mp_file_history_node_func)(cbp-> fh_cookie, ino, &ret_attr, 0); if (err < 0) { ! syslog(LOG_DEBUG, "\"%s/\": %d", dir, err); break; } } }
*** 1529,1578 **** ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; if (!cbp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! NDMP_LOG(LOG_DEBUG, "cookie is NULL"); } else if (!dir) { err = -1; ! NDMP_LOG(LOG_DEBUG, "dir is NULL"); } else if (!file) { err = -1; ! NDMP_LOG(LOG_DEBUG, "file is NULL"); } else if (!stp) { err = -1; ! NDMP_LOG(LOG_DEBUG, "stp is NULL"); } else if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! NDMP_LOG(LOG_DEBUG, "nlp is NULL"); } else err = 0; if (err != 0) return (0); - NDMP_LOG(LOG_DEBUG, "d(%s), f(%s)", dir, file); - err = 0; if (fh_requested(cbp->fh_cookie) == TRUE) { if (stp->st_ino == nlp->nlp_bkdirino) { ino = ROOT_INODE; - NDMP_LOG(LOG_DEBUG, - "bkroot %d -> %d", stp->st_ino, ROOT_INODE); } else { ino = stp->st_ino; } params = get_params(cbp->fh_cookie); if (params == NULL || params->mp_file_history_node_func == NULL) err = -1; else if ((err = (*params->mp_file_history_node_func)(cbp-> fh_cookie, ino, stp, 0)) < 0) ! NDMP_LOG(LOG_DEBUG, "\"%s/\": %d", dir, file, err); } return (err); } --- 1505,1550 ---- ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; if (!cbp) { err = -1; ! syslog(LOG_DEBUG, "cbp is NULL"); } else if (!cbp->fh_cookie) { err = -1; ! syslog(LOG_DEBUG, "cookie is NULL"); } else if (!dir) { err = -1; ! syslog(LOG_DEBUG, "dir is NULL"); } else if (!file) { err = -1; ! syslog(LOG_DEBUG, "file is NULL"); } else if (!stp) { err = -1; ! syslog(LOG_DEBUG, "stp is NULL"); } else if (!(nlp = ndmp_get_nlp(cbp->fh_cookie))) { err = -1; ! syslog(LOG_DEBUG, "nlp is NULL"); } else err = 0; if (err != 0) return (0); err = 0; if (fh_requested(cbp->fh_cookie) == TRUE) { if (stp->st_ino == nlp->nlp_bkdirino) { ino = ROOT_INODE; } else { ino = stp->st_ino; } params = get_params(cbp->fh_cookie); if (params == NULL || params->mp_file_history_node_func == NULL) err = -1; else if ((err = (*params->mp_file_history_node_func)(cbp-> fh_cookie, ino, stp, 0)) < 0) ! syslog(LOG_DEBUG, "\"%s/\": %d", dir, file, err); } return (err); }
*** 1593,1619 **** ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; int pos = (int)ll_pos; if (cbp == NULL) { ! NDMP_LOG(LOG_DEBUG, "cbp is NULL"); return (-1); } if (name == NULL) { ! NDMP_LOG(LOG_DEBUG, "name is NULL"); return (-1); } - NDMP_LOG(LOG_DEBUG, "name: \"%s\", pos: %d", - name, pos); - if ((nlp = ndmp_get_nlp(cbp->fh_cookie)) == NULL) { ! NDMP_LOG(LOG_DEBUG, "nlp is NULL"); return (-1); } if (pos < 0 || pos >= nlp->nlp_nfiles) { ! NDMP_LOG(LOG_DEBUG, "Invalid pos: %d", pos); return (-1); } params = get_params(cbp->fh_cookie); if (params == NULL || params->mp_file_recovered_func == NULL) return (-1); --- 1565,1588 ---- ndmp_lbr_params_t *nlp; ndmpd_module_params_t *params; int pos = (int)ll_pos; if (cbp == NULL) { ! syslog(LOG_DEBUG, "cbp is NULL"); return (-1); } if (name == NULL) { ! syslog(LOG_DEBUG, "name is NULL"); return (-1); } if ((nlp = ndmp_get_nlp(cbp->fh_cookie)) == NULL) { ! syslog(LOG_DEBUG, "nlp is NULL"); return (-1); } if (pos < 0 || pos >= nlp->nlp_nfiles) { ! syslog(LOG_DEBUG, "Invalid pos: %d", pos); return (-1); } params = get_params(cbp->fh_cookie); if (params == NULL || params->mp_file_recovered_func == NULL) return (-1);