Print this page
NEX-13374 NDMP should be able to backup unmounted ZFS filesystems
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Evan Layton <evan.layton@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
NEX-2690 NDMP V4 required to have Record size is persistent between mover connections and state transitions
NEX-2911 NDMP logging should use syslog and is too chatty
NEX-727 Netbackup Catalog verification hangs waiting for NDMP server
NEX-799 past last file mark returned NDMP_IO_ERR, should be NDMP_EOM_ERR (V4+)
NEX-812 NDMP backup terminate after hit the EOM in Netbackup backup
NEX-559 NDMP cannot backup/restore a file which spans multiple tapes
SUP-484 NDMP backup jobs error out when reaching the end of media (EOM)

@@ -35,16 +35,17 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  */
 /* Copyright (c) 2007, The Storage Networking Industry Association. */
 /* Copyright (c) 1996, 1997 PDC, Network Appliance. All Rights Reserved */
-/* Copyright 2014 Nexenta Systems, Inc.  All rights reserved. */
+/* Copyright 2017 Nexenta Systems, Inc.  All rights reserved. */
 
 #include <sys/ioctl.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/socketvar.h>
+#include <syslog.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <net/if.h>
 #include <errno.h>
 #include <fcntl.h>

@@ -184,11 +185,10 @@
 
         request = (ndmp_mover_listen_request_v2 *)body;
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE ||
             session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
                 ndmp_send_reply(connection, (void *) &reply,
                     "sending mover_listen reply");
                 return;
         }

@@ -243,11 +243,10 @@
 {
         ndmp_mover_continue_reply reply;
         ndmpd_session_t *session = ndmp_get_client_data(connection);
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_PAUSED) {
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
 
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
                 ndmp_send_reply(connection, (void *) &reply,
                     "sending mover_continue reply");
                 return;

@@ -278,11 +277,10 @@
         ndmp_mover_abort_reply reply;
         ndmpd_session_t *session = ndmp_get_client_data(connection);
 
         if (session->ns_mover.md_state == NDMP_MOVER_STATE_IDLE ||
             session->ns_mover.md_state == NDMP_MOVER_STATE_HALTED) {
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
 
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
                 ndmp_send_reply(connection, (void *) &reply,
                     "sending mover_abort reply");
                 return;

@@ -315,11 +313,10 @@
 {
         ndmp_mover_stop_reply reply;
         ndmpd_session_t *session = ndmp_get_client_data(connection);
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_HALTED) {
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
 
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
                 ndmp_send_reply(connection, (void *) &reply,
                     "sending mover_stop reply");
                 return;

@@ -368,16 +365,14 @@
          */
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE &&
             session->ns_mover.md_state != NDMP_MOVER_STATE_PAUSED &&
             session->ns_mover.md_state != NDMP_MOVER_STATE_LISTEN) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid state %d",
-                    session->ns_mover.md_state);
         } else {
                 if (quad_to_long_long(request->length) == 0) {
                         reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                        NDMP_LOG(LOG_DEBUG, "Invalid window size %d",
+                        syslog(LOG_ERR, "Illegal window size %d",
                             quad_to_long_long(request->length));
                 } else {
                         reply.error = NDMP_NO_ERR;
                         session->ns_mover.md_window_offset =
                             quad_to_long_long(request->offset);

@@ -420,18 +415,17 @@
         int err;
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_ACTIVE ||
             session->ns_mover.md_bytes_left_to_read != 0 ||
             session->ns_mover.md_mode != NDMP_MOVER_MODE_WRITE) {
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
                 ndmp_send_reply(connection, &reply,
                     "sending mover_read reply");
                 return;
         }
         if (session->ns_tape.td_fd == -1) {
-                NDMP_LOG(LOG_DEBUG, "Tape device is not open");
+                syslog(LOG_ERR, "Tape device is not open");
                 reply.error = NDMP_DEV_NOT_OPEN_ERR;
                 ndmp_send_reply(connection, &reply,
                     "sending mover_read reply");
                 return;
         }

@@ -478,11 +472,10 @@
 {
         ndmp_mover_close_reply reply;
         ndmpd_session_t *session = ndmp_get_client_data(connection);
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_PAUSED) {
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
 
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
                 ndmp_send_reply(connection, &reply,
                     "sending mover_close reply");
                 return;

@@ -511,10 +504,11 @@
 void
 ndmpd_mover_set_record_size_v2(ndmp_connection_t *connection, void *body)
 {
         ndmp_mover_set_record_size_request *request;
         ndmp_mover_set_record_size_reply reply;
+
         ndmpd_session_t *session = ndmp_get_client_data(connection);
 
         request = (ndmp_mover_set_record_size_request *) body;
 
         session->ns_mover.md_record_size = request->len;

@@ -610,30 +604,23 @@
         reply.error = NDMP_NO_ERR;
 
         if (request->mode != NDMP_MOVER_MODE_READ &&
             request->mode != NDMP_MOVER_MODE_WRITE) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid mode %d", request->mode);
         } else if (!ndmp_valid_v3addr_type(request->addr_type)) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid address type %d",
-                    request->addr_type);
         } else if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG,
-                    "Invalid mover state to process listen request");
         } else if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG,
-                    "Invalid data state to process listen request");
         } else if (session->ns_tape.td_fd == -1) {
                 reply.error = NDMP_DEV_NOT_OPEN_ERR;
-                NDMP_LOG(LOG_DEBUG, "No tape device open");
+                syslog(LOG_ERR, "No tape device open");
         } else if (request->mode == NDMP_MOVER_MODE_READ &&
             session->ns_tape.td_mode == NDMP_TAPE_READ_MODE) {
                 reply.error = NDMP_PERMISSION_ERR;
-                NDMP_LOG(LOG_ERR, "Write protected device.");
+                syslog(LOG_ERR, "Write protected device.");
         }
 
         if (reply.error != NDMP_NO_ERR) {
                 ndmp_send_reply(connection, &reply,
                     "error sending ndmp_mover_listen reply");

@@ -656,17 +643,15 @@
                 reply.data_connection_addr.tcp_ip_v3 = htonl(addr);
                 reply.data_connection_addr.tcp_port_v3 = htons(port);
                 session->ns_mover.md_data_addr.addr_type = NDMP_ADDR_TCP;
                 session->ns_mover.md_data_addr.tcp_ip_v3 = addr;
                 session->ns_mover.md_data_addr.tcp_port_v3 = ntohs(port);
-                NDMP_LOG(LOG_DEBUG, "listen_socket: %d",
+                syslog(LOG_DEBUG, "listen_socket: %d",
                     session->ns_mover.md_listen_sock);
                 break;
         default:
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid address type: %d",
-                    request->addr_type);
         }
 
         if (reply.error == NDMP_NO_ERR) {
                 session->ns_mover.md_mode = request->mode;
                 session->ns_mover.md_state = NDMP_MOVER_STATE_LISTEN;

@@ -699,20 +684,19 @@
         int ret;
 
         (void) memset((void*)&reply, 0, sizeof (reply));
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_PAUSED) {
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
                 ndmp_send_reply(connection, (void *) &reply,
                     "sending mover_continue reply");
                 return;
         }
 
         if (session->ns_protocol_version == NDMPV4 &&
             !session->ns_mover.md_pre_cond) {
-                NDMP_LOG(LOG_DEBUG, "Precondition check");
+                syslog(LOG_DEBUG, "Precondition check");
                 reply.error = NDMP_PRECONDITION_ERR;
                 ndmp_send_reply(connection, (void *) &reply,
                     "sending mover_continue reply");
                 return;
         }

@@ -751,11 +735,10 @@
                         /*
                          * This should not happen because we should be in the
                          * right window. This means that DMA does not follow
                          * the V3 spec.
                          */
-                        NDMP_LOG(LOG_DEBUG, "DMA Error.");
                         ndmpd_mover_error(session,
                             NDMP_MOVER_HALT_INTERNAL_ERROR);
                         return;
                 }
         }

@@ -793,11 +776,10 @@
         ndmp_mover_abort_reply reply;
         ndmpd_session_t *session = ndmp_get_client_data(connection);
 
         if (session->ns_mover.md_state == NDMP_MOVER_STATE_IDLE ||
             session->ns_mover.md_state == NDMP_MOVER_STATE_HALTED) {
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
 
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
                 ndmp_send_reply(connection, (void *) &reply,
                     "sending mover_abort reply");
                 return;

@@ -841,25 +823,20 @@
          */
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE &&
             session->ns_mover.md_state != NDMP_MOVER_STATE_LISTEN &&
             session->ns_mover.md_state != NDMP_MOVER_STATE_PAUSED) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid state %d",
-                    session->ns_mover.md_state);
         } else if (session->ns_mover.md_record_size == 0) {
                 if (session->ns_protocol_version == NDMPV4)
                         reply.error = NDMP_PRECONDITION_ERR;
                 else
                         reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid record size 0");
         } else
                 reply.error = NDMP_NO_ERR;
 
         if (quad_to_long_long(request->length) == 0) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid window size %d",
-                    quad_to_long_long(request->length));
         }
 
         if (reply.error != NDMP_NO_ERR) {
                 ndmp_send_reply(connection, (void *) &reply,
                     "sending mover_set_window_v3 reply");

@@ -922,22 +899,19 @@
         (void) memset((void*)&reply, 0, sizeof (reply));
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_ACTIVE ||
             session->ns_mover.md_mode != NDMP_MOVER_MODE_WRITE) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid state");
         } else if (session->ns_mover.md_bytes_left_to_read != 0) {
                 reply.error = NDMP_READ_IN_PROGRESS_ERR;
-                NDMP_LOG(LOG_DEBUG, "In progress");
         } else if (session->ns_tape.td_fd == -1) {
                 reply.error = NDMP_DEV_NOT_OPEN_ERR;
-                NDMP_LOG(LOG_DEBUG, "Tape device is not open");
+                syslog(LOG_ERR, "Tape device is not open");
         } else if (quad_to_long_long(request->length) == 0 ||
             (quad_to_long_long(request->length) == MAX_WINDOW_SIZE &&
             quad_to_long_long(request->offset) != 0)) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Illegal args");
         } else {
                 reply.error = NDMP_NO_ERR;
         }
 
         ndmp_send_reply(connection, (void *) &reply,

@@ -993,20 +967,16 @@
 
         request = (ndmp_mover_set_record_size_request *) body;
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid mover state %d",
-                    session->ns_mover.md_state);
         } else if (request->len > (unsigned int)ndmp_max_mover_recsize) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG,
-                    "Invalid argument %d, should be > 0 and <= %d",
-                    request->len, ndmp_max_mover_recsize);
-        } else if (request->len == session->ns_mover.md_record_size)
+        } else if (request->len == session->ns_mover.md_record_size) {
                 reply.error = NDMP_NO_ERR;
-        else if (!(cp = realloc(session->ns_mover.md_buf, request->len))) {
+                session->ns_mover.md_pre_cond = TRUE;
+        } else if (!(cp = realloc(session->ns_mover.md_buf, request->len))) {
                 reply.error = NDMP_NO_MEM_ERR;
         } else {
                 reply.error = NDMP_NO_ERR;
                 session->ns_mover.md_buf = cp;
                 session->ns_mover.md_record_size = request->len;

@@ -1043,26 +1013,21 @@
         (void) memset((void*)&reply, 0, sizeof (reply));
 
         if (request->mode != NDMP_MOVER_MODE_READ &&
             request->mode != NDMP_MOVER_MODE_WRITE) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid mode %d", request->mode);
         } else if (!ndmp_valid_v3addr_type(request->addr.addr_type)) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid address type %d",
-                    request->addr.addr_type);
         } else if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid state %d: mover is not idle",
-                    session->ns_mover.md_state);
         } else if (session->ns_tape.td_fd == -1) {
                 reply.error = NDMP_DEV_NOT_OPEN_ERR;
-                NDMP_LOG(LOG_DEBUG, "No tape device open");
+                syslog(LOG_ERR, "No tape device open");
         } else if (request->mode == NDMP_MOVER_MODE_READ &&
             session->ns_tape.td_mode == NDMP_TAPE_READ_MODE) {
                 reply.error = NDMP_WRITE_PROTECT_ERR;
-                NDMP_LOG(LOG_ERR, "Write protected device.");
+                syslog(LOG_ERR, "Write protected device.");
         } else
                 reply.error = NDMP_NO_ERR;
 
         if (reply.error != NDMP_NO_ERR) {
                 ndmp_send_reply(connection, (void *) &reply,

@@ -1076,12 +1041,10 @@
                  * Verify that the data server is listening for a
                  * local connection.
                  */
                 if (session->ns_data.dd_state != NDMP_DATA_STATE_LISTEN ||
                     session->ns_data.dd_listen_sock != -1) {
-                        NDMP_LOG(LOG_DEBUG,
-                            "Data server is not in local listen state");
                         reply.error = NDMP_ILLEGAL_STATE_ERR;
                 } else
                         session->ns_data.dd_state = NDMP_DATA_STATE_CONNECTED;
                 break;
 

@@ -1090,12 +1053,10 @@
                     request->addr.tcp_ip_v3, request->addr.tcp_port_v3);
                 break;
 
         default:
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid address type %d",
-                    request->addr.addr_type);
         }
 
         if (reply.error == NDMP_NO_ERR) {
                 session->ns_mover.md_data_addr.addr_type =
                     request->addr.addr_type;

@@ -1194,33 +1155,25 @@
         reply.error = NDMP_NO_ERR;
 
         if (request->mode != NDMP_MOVER_MODE_READ &&
             request->mode != NDMP_MOVER_MODE_WRITE) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid mode %d", request->mode);
         } else if (!ndmp_valid_v3addr_type(request->addr_type)) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid address type %d",
-                    request->addr_type);
         } else if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG,
-                    "Invalid mover state to process listen request");
         } else if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG,
-                    "Invalid data state to process listen request");
         } else if (session->ns_tape.td_fd == -1) {
                 reply.error = NDMP_DEV_NOT_OPEN_ERR;
-                NDMP_LOG(LOG_DEBUG, "No tape device open");
+                syslog(LOG_ERR, "No tape device open");
         } else if (session->ns_mover.md_record_size == 0) {
                 reply.error = NDMP_PRECONDITION_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid record size 0");
         } else if (request->mode == NDMP_MOVER_MODE_READ &&
             session->ns_tape.td_mode == NDMP_TAPE_READ_MODE) {
                 reply.error = NDMP_PERMISSION_ERR;
-                NDMP_LOG(LOG_ERR, "Write protected device.");
+                syslog(LOG_ERR, "Write protected device.");
         }
 
         if (reply.error != NDMP_NO_ERR) {
                 ndmp_send_reply(connection, (void *) &reply,
                     "error sending ndmp_mover_listen reply");

@@ -1253,17 +1206,15 @@
 
                 /* For compatibility with V3 */
                 session->ns_mover.md_data_addr.addr_type = NDMP_ADDR_TCP;
                 session->ns_mover.md_data_addr.tcp_ip_v3 = addr;
                 session->ns_mover.md_data_addr.tcp_port_v3 = ntohs(port);
-                NDMP_LOG(LOG_DEBUG, "listen_socket: %d",
+                syslog(LOG_DEBUG, "listen_socket: %d",
                     session->ns_mover.md_listen_sock);
                 break;
         default:
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid address type: %d",
-                    request->addr_type);
         }
 
         if (reply.error == NDMP_NO_ERR) {
                 session->ns_mover.md_mode = request->mode;
                 session->ns_mover.md_state = NDMP_MOVER_STATE_LISTEN;

@@ -1297,29 +1248,23 @@
         (void) memset((void*)&reply, 0, sizeof (reply));
 
         if (request->mode != NDMP_MOVER_MODE_READ &&
             request->mode != NDMP_MOVER_MODE_WRITE) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid mode %d", request->mode);
         } else if (!ndmp_valid_v3addr_type(request->addr.addr_type)) {
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid address type %d",
-                    request->addr.addr_type);
         } else if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE) {
                 reply.error = NDMP_ILLEGAL_STATE_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid state %d: mover is not idle",
-                    session->ns_mover.md_state);
         } else if (session->ns_tape.td_fd == -1) {
                 reply.error = NDMP_DEV_NOT_OPEN_ERR;
-                NDMP_LOG(LOG_DEBUG, "No tape device open");
+                syslog(LOG_ERR, "No tape device open");
         } else if (request->mode == NDMP_MOVER_MODE_READ &&
             session->ns_tape.td_mode == NDMP_TAPE_READ_MODE) {
                 reply.error = NDMP_PERMISSION_ERR;
-                NDMP_LOG(LOG_ERR, "Write protected device.");
+                syslog(LOG_ERR, "Write protected device.");
         } else if (session->ns_mover.md_record_size == 0) {
                 reply.error = NDMP_PRECONDITION_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid record size 0");
         } else
                 reply.error = NDMP_NO_ERR;
 
         if (reply.error != NDMP_NO_ERR) {
                 ndmp_send_reply(connection, (void *) &reply,

@@ -1333,12 +1278,10 @@
                  * Verify that the data server is listening for a
                  * local connection.
                  */
                 if (session->ns_data.dd_state != NDMP_DATA_STATE_LISTEN ||
                     session->ns_data.dd_listen_sock != -1) {
-                        NDMP_LOG(LOG_DEBUG,
-                            "Data server is not in local listen state");
                         reply.error = NDMP_ILLEGAL_STATE_ERR;
                 } else
                         session->ns_data.dd_state = NDMP_DATA_STATE_CONNECTED;
                 break;
 

@@ -1347,12 +1290,10 @@
                     request->addr.tcp_ip_v4(0), request->addr.tcp_port_v4(0));
                 break;
 
         default:
                 reply.error = NDMP_ILLEGAL_ARGS_ERR;
-                NDMP_LOG(LOG_DEBUG, "Invalid address type %d",
-                    request->addr.addr_type);
         }
 
         if (reply.error == NDMP_NO_ERR) {
                 session->ns_mover.md_data_addr.addr_type =
                     request->addr.addr_type;

@@ -1509,11 +1450,11 @@
                     session->ns_data.dd_abort == TRUE)
                         return (-1);
 
                 if ((n = write(session->ns_data.dd_sock, &data[count],
                     length - count)) < 0) {
-                        NDMP_LOG(LOG_ERR, "Socket write error: %m.");
+                        syslog(LOG_ERR, "Socket write error: %m.");
                         return (-1);
                 }
                 count += n;
         }
 

@@ -1584,12 +1525,10 @@
                             long_long_to_quad(session->ns_mover.md_position);
 
                         if (ndmp_send_request(session->ns_connection,
                             NDMP_NOTIFY_MOVER_PAUSED, NDMP_NO_ERR,
                             (void *) &pause_request, 0) < 0) {
-                                NDMP_LOG(LOG_DEBUG,
-                                    "Sending notify_mover_paused request");
                                 ndmpd_mover_error(session,
                                     NDMP_MOVER_HALT_INTERNAL_ERROR);
                                 return (-1);
                         }
                         /*

@@ -1671,12 +1610,10 @@
                         return (n == 0) ? (1) : (-1);
                 }
                 session->ns_mover.md_w_index = n;
                 session->ns_mover.md_r_index = 0;
 
-                NDMP_LOG(LOG_DEBUG, "n: %d", n);
-
                 /*
                  * Discard data if the current data stream position is
                  * prior to the seek position. This is necessary if a seek
                  * request set the seek pointer to a position that is not a
                  * record boundary. The seek request handler can only position

@@ -1751,12 +1688,10 @@
                             long_long_to_quad(session->ns_data.dd_read_length);
 
                         if (ndmp_send_request_lock(session->ns_connection,
                             NDMP_NOTIFY_DATA_READ, NDMP_NO_ERR,
                             (void *) &request, 0) < 0) {
-                                NDMP_LOG(LOG_DEBUG,
-                                    "Sending notify_data_read request");
                                 return (-1);
                         }
                 }
                 if (session->ns_eof == TRUE ||
                     session->ns_data.dd_abort == TRUE)

@@ -1779,15 +1714,13 @@
                  * Don't attempt to read more data than the remote is sending.
                  */
                 if (len > session->ns_mover.md_bytes_left_to_read)
                         len = session->ns_mover.md_bytes_left_to_read;
 
-                NDMP_LOG(LOG_DEBUG, "len: %u", len);
-
                 if ((n = read(session->ns_data.dd_sock, &data[count],
                     len)) < 0) {
-                        NDMP_LOG(LOG_ERR, "Socket read error: %m.");
+                        syslog(LOG_ERR, "Socket read error: %m.");
                         return (-1);
                 }
                 /* read returns 0 if the connection was closed */
                 if (n == 0)
                         return (-1);

@@ -1869,20 +1802,16 @@
         if ((nlp = ndmp_get_nlp(session)) == NULL)
                 return;
 
         (void) mutex_lock(&nlp->nlp_mtx);
         if (session->ns_mover.md_listen_sock != -1) {
-                NDMP_LOG(LOG_DEBUG, "mover.listen_sock: %d",
-                    session->ns_mover.md_listen_sock);
                 (void) ndmpd_remove_file_handler(session,
                     session->ns_mover.md_listen_sock);
                 (void) close(session->ns_mover.md_listen_sock);
                 session->ns_mover.md_listen_sock = -1;
         }
         if (session->ns_mover.md_sock != -1) {
-                NDMP_LOG(LOG_DEBUG, "mover.sock: %d",
-                    session->ns_mover.md_sock);
                 (void) ndmpd_remove_file_handler(session,
                     session->ns_mover.md_sock);
                 (void) close(session->ns_mover.md_sock);
                 session->ns_mover.md_sock = -1;
         }

@@ -1946,65 +1875,60 @@
                                 session->ns_data.dd_sock =
                                     session->ns_mover.md_sock;
                                 return (NDMP_NO_ERR);
                         }
 
-                        NDMP_LOG(LOG_DEBUG, "addr: %u port: %u",
+                        syslog(LOG_DEBUG, "addr: %u port: %u",
                             mover->ndmp_mover_addr_u.addr.ip_addr,
                             (ulong_t)sin.sin_port);
 
                         if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-                                NDMP_LOG(LOG_DEBUG, "Socket error: %m");
+                                syslog(LOG_ERR, "Socket error: %m");
                                 return (NDMP_IO_ERR);
                         }
                         if (connect(sock, (struct sockaddr *)&sin,
                             sizeof (sin)) < 0) {
-                                NDMP_LOG(LOG_DEBUG, "Connect error: %m");
+                                syslog(LOG_ERR, "Connect error: %m");
                                 (void) close(sock);
                                 return (NDMP_IO_ERR);
                         }
                         set_socket_options(sock);
                 } else {
                         if ((session->ns_mover.md_state !=
                             NDMP_MOVER_STATE_ACTIVE) ||
                             (session->ns_mover.md_sock == -1)) {
 
-                                NDMP_LOG(LOG_DEBUG,
+                                syslog(LOG_DEBUG,
                                     "Not in active  state mover"
-                                    "  state = %d or Invalid mover sock=%d",
+                                    "  state = %d or Illegal mover sock=%d",
                                     session->ns_mover.md_state,
                                     session->ns_mover.md_sock);
                                 return (NDMP_ILLEGAL_STATE_ERR);
                         }
 
                         sock = session->ns_mover.md_sock;
-                        NDMP_LOG(LOG_DEBUG,
+                        syslog(LOG_DEBUG,
                             "session: 0x%x setting data sock fd: %d to be"
                             " same as listen_sock", session, sock);
                 }
 
-                NDMP_LOG(LOG_DEBUG, "sock fd: %d", sock);
-
                 session->ns_data.dd_sock = sock;
 
-                NDMP_LOG(LOG_DEBUG, "data.mover_sock: %u", sock);
-
                 return (NDMP_NO_ERR);
         }
         /* Local mover connection. */
 
         if (session->ns_mover.md_state != NDMP_MOVER_STATE_LISTEN) {
-                NDMP_LOG(LOG_DEBUG, "Mover is not in listen state");
                 return (NDMP_ILLEGAL_STATE_ERR);
         }
         if (session->ns_tape.td_fd == -1) {
-                NDMP_LOG(LOG_DEBUG, "Tape device not open");
+                syslog(LOG_ERR, "Tape device not open");
                 return (NDMP_DEV_NOT_OPEN_ERR);
         }
         if (mover_mode == NDMP_MOVER_MODE_READ &&
             session->ns_tape.td_mode == NDMP_TAPE_READ_MODE) {
-                NDMP_LOG(LOG_ERR, "Write protected device.");
+                syslog(LOG_ERR, "Write protected device.");
                 return (NDMP_WRITE_PROTECT_ERR);
         }
         session->ns_mover.md_state = NDMP_MOVER_STATE_ACTIVE;
         session->ns_mover.md_mode = mover_mode;
 

@@ -2056,12 +1980,10 @@
         if (session->ns_mover.md_seek_position <
             session->ns_mover.md_window_offset ||
             session->ns_mover.md_seek_position >=
             session->ns_mover.md_window_offset +
             session->ns_mover.md_window_length) {
-                NDMP_LOG(LOG_DEBUG, "MOVER_PAUSE_SEEK(%llu)",
-                    session->ns_mover.md_seek_position);
 
                 session->ns_mover.md_w_index = 0;
                 session->ns_mover.md_r_index = 0;
 
                 session->ns_mover.md_state = NDMP_MOVER_STATE_PAUSED;

@@ -2070,12 +1992,10 @@
                 pause_request.seek_position = long_long_to_quad(offset);
 
                 if (ndmp_send_request(session->ns_connection,
                     NDMP_NOTIFY_MOVER_PAUSED, NDMP_NO_ERR,
                     (void *) &pause_request, 0) < 0) {
-                        NDMP_LOG(LOG_DEBUG,
-                            "Sending notify_mover_paused request");
                         return (-1);
                 }
                 return (1);
         }
         /*

@@ -2099,15 +2019,10 @@
          */
         if (offset >= buf_position && offset < tape_position) {
                 session->ns_mover.md_position = offset;
                 session->ns_mover.md_r_index = session->ns_mover.md_position -
                     buf_position;
-
-                NDMP_LOG(LOG_DEBUG, "pos %llu r_index %u",
-                    session->ns_mover.md_position,
-                    session->ns_mover.md_r_index);
-
                 return (0);
         }
 
         ctlcmd = 0;
         if (tape_position > session->ns_mover.md_seek_position) {

@@ -2128,21 +2043,17 @@
                     session->ns_mover.md_record_size)) *
                     (u_longlong_t)session->ns_mover.md_record_size);
         }
         /* Reposition the tape if necessary. */
         if (ctlcmd) {
-                NDMP_LOG(LOG_DEBUG, "cmd %d count %d",
-                    ctlcmd, ctlcnt);
                 (void) ndmp_mtioctl(session->ns_tape.td_fd, ctlcmd, ctlcnt);
         }
 
         session->ns_mover.md_position = tape_position;
         session->ns_mover.md_r_index = 0;
         session->ns_mover.md_w_index = 0;
 
-        NDMP_LOG(LOG_DEBUG, "pos %llu", session->ns_mover.md_position);
-
         return (0);
 }
 
 
 /* ** static functions ************************************************** */

@@ -2179,11 +2090,10 @@
                 (void) close(session->ns_mover.md_listen_sock);
                 session->ns_mover.md_listen_sock = -1;
                 return (-1);
         }
 
-        NDMP_LOG(LOG_DEBUG, "addr: 0x%x, port: %d", *addr, *port);
         return (0);
 }
 
 /*
  * accept_connection

@@ -2215,35 +2125,31 @@
         (void) ndmpd_remove_file_handler(session, fd);
         (void) close(session->ns_mover.md_listen_sock);
         session->ns_mover.md_listen_sock = -1;
 
         if (session->ns_mover.md_sock < 0) {
-                NDMP_LOG(LOG_DEBUG, "Accept error: %m");
+                syslog(LOG_ERR, "Accept error: %m");
                 ndmpd_mover_error(session, NDMP_MOVER_HALT_CONNECT_ERROR);
                 return;
         }
         set_socket_options(session->ns_mover.md_sock);
 
-        NDMP_LOG(LOG_DEBUG, "sock fd: %d", session->ns_mover.md_sock);
-
         if (session->ns_mover.md_mode == NDMP_MOVER_MODE_READ) {
                 if (start_mover_for_backup(session) < 0) {
                         ndmpd_mover_error(session,
                             NDMP_MOVER_HALT_INTERNAL_ERROR);
                         return;
                 }
-                NDMP_LOG(LOG_DEBUG, "Backup connection established by %s:%d",
+                syslog(LOG_DEBUG, "Backup connection established by %s:%d",
                     inet_ntoa(IN_ADDR(from.sin_addr.s_addr)),
                     ntohs(from.sin_port));
         } else {
-                NDMP_LOG(LOG_DEBUG, "Restore connection established by %s:%d",
+                syslog(LOG_DEBUG, "Restore connection established by %s:%d",
                     inet_ntoa(IN_ADDR(from.sin_addr.s_addr)),
                     ntohs(from.sin_port));
         }
 
-        NDMP_LOG(LOG_DEBUG, "Received connection");
-
         session->ns_mover.md_state = NDMP_MOVER_STATE_ACTIVE;
 }
 
 /*
  * tape_read

@@ -2267,11 +2173,11 @@
         int count = session->ns_mover.md_record_size;
 
         for (; ; ) {
                 n = read(session->ns_tape.td_fd, data, count);
                 if (n < 0) {
-                        NDMP_LOG(LOG_ERR, "Tape read error: %m.");
+                        syslog(LOG_ERR, "Tape read error: %m.");
                         return (TAPE_READ_ERR);
                 }
                 NS_ADD(rtape, n);
 
                 if (n == 0) {

@@ -2286,11 +2192,11 @@
                          */
                         NDMP_APILOG((void*)session, NDMP_LOG_NORMAL,
                             ++ndmp_log_msg_id,
                             "End of tape reached. Load next tape");
 
-                        NDMP_LOG(LOG_DEBUG,
+                        syslog(LOG_DEBUG,
                             "End of tape reached. Load next tape");
 
                         err = change_tape(session);
 
                         /* Operation aborted or connection terminated? */

@@ -2351,18 +2257,16 @@
                 session->ns_mover.md_pause_reason = NDMP_MOVER_PAUSE_EOF;
 
         request.reason = session->ns_mover.md_pause_reason;
         request.seek_position = long_long_to_quad(0LL);
 
-        NDMP_LOG(LOG_DEBUG, "ndmp_send_request: MOVER_PAUSED, reason: %d",
+        syslog(LOG_DEBUG, "ndmp_send_request: MOVER_PAUSED, reason: %d",
             session->ns_mover.md_pause_reason);
 
         if (ndmp_send_request(session->ns_connection,
             NDMP_NOTIFY_MOVER_PAUSED, NDMP_NO_ERR,
             (void *) &request, 0) < 0) {
-                NDMP_LOG(LOG_DEBUG,
-                    "Sending notify_mover_paused request");
                 return (-1);
         }
         /*
          * Wait for until the state is changed by
          * an abort or continue request.

@@ -2395,11 +2299,11 @@
                 return (-1);
 
         /* Read and discard the data. */
         n = read(session->ns_mover.md_sock, addr, length);
         if (n < 0) {
-                NDMP_LOG(LOG_ERR, "Socket read error: %m.");
+                syslog(LOG_ERR, "Socket read error: %m.");
                 free(addr);
                 return (-1);
         }
 
         free(addr);

@@ -2438,34 +2342,28 @@
         if (session->ns_mover.md_position >=
             session->ns_mover.md_window_offset +
             session->ns_mover.md_window_length) {
                 ndmp_notify_mover_paused_request pause_request;
 
-                NDMP_LOG(LOG_DEBUG, "end of mover window");
-
                 session->ns_mover.md_state = NDMP_MOVER_STATE_PAUSED;
                 session->ns_mover.md_pause_reason = NDMP_MOVER_PAUSE_SEEK;
                 pause_request.reason = NDMP_MOVER_PAUSE_SEEK;
                 pause_request.seek_position =
                     long_long_to_quad(session->ns_mover.md_position);
 
                 if (ndmp_send_request(session->ns_connection,
                     NDMP_NOTIFY_MOVER_PAUSED, NDMP_NO_ERR,
                     (void *) &pause_request, 0) < 0) {
-                        NDMP_LOG(LOG_DEBUG,
-                            "Sending notify_mover_paused request");
                         ndmpd_mover_error(session,
                             NDMP_MOVER_HALT_INTERNAL_ERROR);
                 }
                 buf->tb_errno = EIO;
                 return (TAPE_READ_ERR);
         }
 
         n = tape_read(session, buf->tb_buffer_data);
 
-        NDMP_LOG(LOG_DEBUG, "read %d bytes from tape", n);
-
         if (n <= 0) {
                 if (n < 0)
                         ndmpd_mover_error(session,
                             (n == 0 ? NDMP_MOVER_HALT_ABORTED :
                             NDMP_MOVER_HALT_INTERNAL_ERROR));

@@ -2513,11 +2411,10 @@
         tlm_buffers_t *bufs;
         tlm_cmd_t *lcmd;        /* Local command */
         tlm_commands_t *cmds;   /* Commands structure */
 
         if ((nlp = ndmp_get_nlp(session)) == NULL) {
-                NDMP_LOG(LOG_DEBUG, "nlp == NULL");
                 return (-1);
         }
 
         cmds = &nlp->nlp_cmds;
         lcmd = cmds->tcs_command;

@@ -2535,35 +2432,35 @@
         while (cmds->tcs_reader == TLM_RESTORE_RUN &&
             lcmd->tc_reader == TLM_RESTORE_RUN) {
                 buf = tlm_buffer_in_buf(bufs, NULL);
 
                 if (buf->tb_full) {
-                        NDMP_LOG(LOG_DEBUG, "R%d", bidx);
+                        syslog(LOG_DEBUG, "R%d", bidx);
                         /*
                          * The buffer is still full, wait for the consumer
                          * thread to use it.
                          */
                         tlm_buffer_out_buf_timed_wait(bufs, 100);
 
                 } else {
-                        NDMP_LOG(LOG_DEBUG, "r%d", bidx);
+                        syslog(LOG_DEBUG, "r%d", bidx);
 
                         rv = mover_tape_read_one_buf(session, buf);
                         /*
                          * If there was an error while reading, such as
                          * end of stream.
                          */
                         if (rv < 0) {
-                                NDMP_LOG(LOG_DEBUG, "Exiting, rv: %d", rv);
+                                syslog(LOG_DEBUG, "Exiting, rv: %d", rv);
                                 break;
                         }
 
                         /*
                          * Can we do more buffering?
                          */
                         if (is_buffer_erroneous(buf)) {
-                                NDMP_LOG(LOG_DEBUG,
+                                syslog(LOG_DEBUG,
                                     "Exiting, errno: %d, eot: %d, eof: %d",
                                     buf->tb_errno, buf->tb_eot, buf->tb_eof);
                                 break;
                         }
 

@@ -2607,14 +2504,11 @@
         /* Write the data to the data connection. */
         errno = 0;
         n = write(session->ns_mover.md_sock, buf->tb_buffer_data,
             buf->tb_buffer_size);
 
-        NDMP_LOG(LOG_DEBUG, "n: %d, len: %d", n, buf->tb_buffer_size);
-
         if (n < 0) {
-                NDMP_LOG(LOG_DEBUG, "n: %d, errno: %m", n);
                 ndmpd_mover_error(session, NDMP_MOVER_HALT_CONNECT_CLOSED);
                 return (-1);
         }
 
         session->ns_mover.md_position += n;

@@ -2626,11 +2520,10 @@
          * then remove the file handler to prevent this
          * function from getting called. The next mover_read request
          * will reinstall the handler.
          */
         if (session->ns_mover.md_bytes_left_to_read == 0) {
-                NDMP_LOG(LOG_DEBUG, "bytes_left_to_read == 0");
                 (void) ndmpd_remove_file_handler(session,
                     session->ns_mover.md_sock);
                 return (-1);
         }
 

@@ -2661,11 +2554,10 @@
         tlm_buffers_t *bufs;
         tlm_cmd_t *lcmd;        /* Local command */
         tlm_commands_t *cmds;   /* Commands structure */
 
         if ((nlp = ndmp_get_nlp(session)) == NULL) {
-                NDMP_LOG(LOG_DEBUG, "nlp == NULL");
                 return (-1);
         }
 
         cmds = &nlp->nlp_cmds;
         lcmd = cmds->tcs_command;

@@ -2683,40 +2575,37 @@
         while (cmds->tcs_writer != (int)TLM_ABORT &&
             lcmd->tc_writer != (int)TLM_ABORT) {
                 buf = &bufs->tbs_buffer[bidx];
 
                 if (buf->tb_full) {
-                        NDMP_LOG(LOG_DEBUG, "w%d", bidx);
+                        syslog(LOG_DEBUG, "w%d", bidx);
 
                         if (mover_socket_write_one_buf(session, buf) < 0) {
-                                NDMP_LOG(LOG_DEBUG,
-                                    "mover_socket_write_one_buf() < 0");
                                 break;
                         }
 
                         (void) tlm_buffer_advance_out_idx(bufs);
                         tlm_buffer_release_out_buf(bufs);
                         bidx = bufs->tbs_buffer_out;
                 } else {
                         if (lcmd->tc_writer != TLM_RESTORE_RUN) {
                                 /* No more data is coming, time to exit */
-                                NDMP_LOG(LOG_DEBUG, "Time to exit");
                                 break;
                         }
-                        NDMP_LOG(LOG_DEBUG, "W%d", bidx);
+                        syslog(LOG_DEBUG, "W%d", bidx);
                         /*
                          * The buffer is not full, wait for the producer
                          * thread to fill it.
                          */
                         tlm_buffer_in_buf_timed_wait(bufs, 100);
                 }
         }
 
         if (cmds->tcs_writer == (int)TLM_ABORT)
-                NDMP_LOG(LOG_DEBUG, "cmds->tcs_writer == (int)TLM_ABORT");
+                syslog(LOG_DEBUG, "cmds->tcs_writer == (int)TLM_ABORT");
         if (lcmd->tc_writer == (int)TLM_ABORT)
-                NDMP_LOG(LOG_DEBUG, "lcmd->tc_writer == TLM_ABORT");
+                syslog(LOG_DEBUG, "lcmd->tc_writer == TLM_ABORT");
 
         /* If the producer is waiting for us, wake it up. */
         tlm_buffer_release_out_buf(bufs);
 
         /*

@@ -2749,11 +2638,10 @@
         tlm_commands_t *cmds;
         long xfer_size;
         int rc;
 
         if ((nlp = ndmp_get_nlp(session)) == NULL) {
-                NDMP_LOG(LOG_DEBUG, "nlp == NULL");
                 return (-1);
         }
 
         cmds = &nlp->nlp_cmds;
         (void) memset(cmds, 0, sizeof (*cmds));

@@ -2774,21 +2662,17 @@
          */
         rc = pthread_create(NULL, NULL, (funct_t)mover_tape_reader, session);
         if (rc == 0) {
                 tlm_cmd_wait(cmds->tcs_command, TLM_TAPE_READER);
         } else {
-                NDMP_LOG(LOG_DEBUG, "Launch mover_tape_reader: %s",
-                    strerror(rc));
                 return (-1);
         }
 
         rc = pthread_create(NULL, NULL, (funct_t)mover_socket_writer, session);
         if (rc == 0) {
                 tlm_cmd_wait(cmds->tcs_command, TLM_SOCK_WRITER);
         } else {
-                NDMP_LOG(LOG_DEBUG, "Launch mover_socket_writer: %s",
-                    strerror(rc));
                 return (-1);
         }
 
         tlm_release_reader_writer_ipc(cmds->tcs_command);
         return (0);

@@ -2818,26 +2702,21 @@
         long toread;
 
         tlm_buffer_mark_empty(buf);
         for (index = 0, toread = read_size; toread > 0; ) {
                 errno = 0;
-                NDMP_LOG(LOG_DEBUG, "index: %d, toread: %d", index, toread);
-
                 n = read(session->ns_mover.md_sock, &buf->tb_buffer_data[index],
                     toread);
                 if (n == 0) {
-                        NDMP_LOG(LOG_DEBUG, "n: %d", n);
                         break;
                 } else if (n > 0) {
-                        NDMP_LOG(LOG_DEBUG, "n: %d", n);
                         index += n;
                         toread -= n;
                 } else {
                         buf->tb_eof = TRUE;
                         buf->tb_errno = errno;
                         buf->tb_buffer_size = 0;
-                        NDMP_LOG(LOG_DEBUG, "n: %d, errno: %m", n);
                         return (-1);
                 }
         }
 
         if (index > 0) {

@@ -2849,11 +2728,11 @@
         } else {
                 buf->tb_eof = TRUE;
                 buf->tb_buffer_size = 0;
         }
 
-        NDMP_LOG(LOG_DEBUG, "full: %d, eot: %d, eof: %d,"
+        syslog(LOG_DEBUG, "full: %d, eot: %d, eof: %d,"
             " errno: %d, size: %d, data: 0x%x",
             buf->tb_full, buf->tb_eot, buf->tb_eof, buf->tb_errno,
             buf->tb_buffer_size, buf->tb_buffer_data);
 
         return (0);

@@ -2884,11 +2763,10 @@
         tlm_cmd_t *lcmd;        /* Local command */
         tlm_commands_t *cmds;   /* Commands structure */
         static int nr = 0;
 
         if ((nlp = ndmp_get_nlp(session)) == NULL) {
-                NDMP_LOG(LOG_DEBUG, "nlp == NULL");
                 return (-1);
         }
 
         cmds = &nlp->nlp_cmds;
         lcmd = cmds->tcs_command;

@@ -2906,27 +2784,27 @@
         while (cmds->tcs_reader == TLM_BACKUP_RUN &&
             lcmd->tc_reader == TLM_BACKUP_RUN) {
                 buf = &bufs->tbs_buffer[bidx];
 
                 if (buf->tb_full) {
-                        NDMP_LOG(LOG_DEBUG, "R%d", bidx);
+                        syslog(LOG_DEBUG, "R%d", bidx);
                         /*
                          * The buffer is still full, wait for the consumer
                          * thread to use it.
                          */
                         tlm_buffer_out_buf_timed_wait(bufs, 100);
                 } else {
-                        NDMP_LOG(LOG_DEBUG, "r%d, nr: %d", bidx, ++nr);
+                        syslog(LOG_DEBUG, "r%d, nr: %d", bidx, ++nr);
 
                         (void) mover_socket_read_one_buf(session, buf,
                             bufs->tbs_data_transfer_size);
 
                         /*
                          * Can we do more buffering?
                          */
                         if (is_buffer_erroneous(buf)) {
-                                NDMP_LOG(LOG_DEBUG,
+                                syslog(LOG_DEBUG,
                                     "Exiting, errno: %d, eot: %d, eof: %d",
                                     buf->tb_errno, buf->tb_eot, buf->tb_eof);
                                 break;
                         }
 

@@ -2935,14 +2813,14 @@
                         bidx = bufs->tbs_buffer_in;
                 }
         }
 
         if (cmds->tcs_reader != TLM_BACKUP_RUN)
-                NDMP_LOG(LOG_DEBUG, "cmds->tcs_reader != TLM_BACKUP_RUN");
+                syslog(LOG_DEBUG, "cmds->tcs_reader != TLM_BACKUP_RUN");
         if (lcmd->tc_reader != TLM_BACKUP_RUN)
-                NDMP_LOG(LOG_DEBUG, "lcmd->tc_reader != TLM_BACKUP_RUN");
-        NDMP_LOG(LOG_DEBUG, "nr: %d", nr);
+                syslog(LOG_DEBUG, "lcmd->tc_reader != TLM_BACKUP_RUN");
+        syslog(LOG_DEBUG, "nr: %d", nr);
 
         /* If the consumer is waiting for us, wake it up. */
         tlm_buffer_release_in_buf(bufs);
 
         /*

@@ -2972,30 +2850,27 @@
 static int
 mover_tape_write_one_buf(ndmpd_session_t *session, tlm_buffer_t *buf)
 {
         int n;
 
-        NDMP_LOG(LOG_DEBUG, "full: %d, eot: %d, eof: %d,"
+        syslog(LOG_DEBUG, "full: %d, eot: %d, eof: %d,"
             " errno: %d, size: %d, data: 0x%x",
             buf->tb_full, buf->tb_eot, buf->tb_eof, buf->tb_errno,
             buf->tb_buffer_size, buf->tb_buffer_data);
 
         n = mover_tape_write_v3(session, buf->tb_buffer_data,
             buf->tb_buffer_size);
 
-        NDMP_LOG(LOG_DEBUG, "n: %d", n);
-
         if (n <= 0) {
                 ndmpd_mover_error(session, (n == 0 ? NDMP_MOVER_HALT_ABORTED
                     : NDMP_MOVER_HALT_INTERNAL_ERROR));
                 return (-1);
         }
         session->ns_mover.md_position += n;
         session->ns_mover.md_data_written += n;
         session->ns_mover.md_record_num++;
 
-        NDMP_LOG(LOG_DEBUG, "Calling tlm_buffer_mark_empty(buf)");
         tlm_buffer_mark_empty(buf);
 
         return (0);
 }
 

@@ -3024,11 +2899,10 @@
         tlm_cmd_t *lcmd;
         tlm_commands_t *cmds;
         static int nw = 0;
 
         if ((nlp = ndmp_get_nlp(session)) == NULL) {
-                NDMP_LOG(LOG_DEBUG, "nlp == NULL");
                 return (-1);
         }
 
         cmds = &nlp->nlp_cmds;
         lcmd = cmds->tcs_command;

@@ -3045,14 +2919,14 @@
         bidx = bufs->tbs_buffer_out;
         buf = &bufs->tbs_buffer[bidx];
         while (cmds->tcs_writer != (int)TLM_ABORT &&
             lcmd->tc_writer != (int)TLM_ABORT) {
                 if (buf->tb_full) {
-                        NDMP_LOG(LOG_DEBUG, "w%d, nw: %d", bidx, ++nw);
+                        syslog(LOG_DEBUG, "w%d, nw: %d", bidx, ++nw);
 
                         if (mover_tape_write_one_buf(session, buf) < 0) {
-                                NDMP_LOG(LOG_DEBUG,
+                                syslog(LOG_DEBUG,
                                     "mover_tape_write_one_buf() failed");
                                 break;
                         }
 
                         (void) tlm_buffer_advance_out_idx(bufs);

@@ -3060,32 +2934,29 @@
                         bidx = bufs->tbs_buffer_out;
                         buf = &bufs->tbs_buffer[bidx];
                 } else {
                         if (lcmd->tc_writer != TLM_BACKUP_RUN) {
                                 /* No more data is coming, time to exit */
-                                NDMP_LOG(LOG_DEBUG, "Time to exit");
                                 break;
                         }
-                        NDMP_LOG(LOG_DEBUG, "W%d", bidx);
+                        syslog(LOG_DEBUG, "W%d", bidx);
                         /*
                          * The buffer is not full, wait for the producer
                          * thread to fill it.
                          */
                         tlm_buffer_in_buf_timed_wait(bufs, 100);
                 }
         }
 
         if (cmds->tcs_writer == (int)TLM_ABORT)
-                NDMP_LOG(LOG_DEBUG, "cmds->tcs_writer == TLM_ABORT");
+                syslog(LOG_DEBUG, "cmds->tcs_writer == TLM_ABORT");
         if (lcmd->tc_writer == (int)TLM_ABORT)
-                NDMP_LOG(LOG_DEBUG, "lcmd->tc_writer == TLM_ABORT");
-        NDMP_LOG(LOG_DEBUG, "nw: %d", nw);
+                syslog(LOG_DEBUG, "lcmd->tc_writer == TLM_ABORT");
 
         if (buf->tb_errno == 0) {
                 ndmpd_mover_error(session, NDMP_MOVER_HALT_CONNECT_CLOSED);
         } else {
-                NDMP_LOG(LOG_DEBUG, "buf->tb_errno: %d", buf->tb_errno);
                 ndmpd_mover_error(session, NDMP_MOVER_HALT_INTERNAL_ERROR);
         }
 
         /* If the producer is waiting for us, wake it up. */
         tlm_buffer_release_out_buf(bufs);

@@ -3120,11 +2991,10 @@
         ndmp_lbr_params_t *nlp;
         tlm_commands_t *cmds;
         int rc;
 
         if ((nlp = ndmp_get_nlp(session)) == NULL) {
-                NDMP_LOG(LOG_DEBUG, "nlp == NULL");
                 return (-1);
         }
 
         cmds = &nlp->nlp_cmds;
         (void) memset(cmds, 0, sizeof (*cmds));

@@ -3145,21 +3015,17 @@
          */
         rc = pthread_create(NULL, NULL, (funct_t)mover_socket_reader, session);
         if (rc == 0) {
                 tlm_cmd_wait(cmds->tcs_command, TLM_SOCK_READER);
         } else {
-                NDMP_LOG(LOG_DEBUG, "Launch mover_socket_reader: %s",
-                    strerror(rc));
                 return (-1);
         }
 
         rc = pthread_create(NULL, NULL, (funct_t)mover_tape_writer, session);
         if (rc == 0) {
                 tlm_cmd_wait(cmds->tcs_command, TLM_TAPE_WRITER);
         } else {
-                NDMP_LOG(LOG_DEBUG, "Launch mover_tape_writer: %s",
-                    strerror(rc));
                 return (-1);
         }
 
         tlm_release_reader_writer_ipc(cmds->tcs_command);
         return (0);

@@ -3314,18 +3180,18 @@
             session->ns_mover.md_state == NDMP_MOVER_STATE_IDLE))
                 return;
 
         if (session->ns_protocol_version == NDMPV4) {
                 if (ndmpd_mover_error_send_v4(session, reason) < 0)
-                        NDMP_LOG(LOG_DEBUG,
+                        syslog(LOG_ERR,
                             "Error sending notify_mover_halted request");
         } else {
                 /* No media error in V3 */
                 if (reason == NDMP_MOVER_HALT_MEDIA_ERROR)
                         reason = NDMP_MOVER_HALT_INTERNAL_ERROR;
                 if (ndmpd_mover_error_send(session, reason) < 0)
-                        NDMP_LOG(LOG_DEBUG,
+                        syslog(LOG_ERR,
                             "Error sending notify_mover_halted request");
         }
 
         (void) mutex_lock(&nlp->nlp_mtx);
         if (session->ns_mover.md_listen_sock != -1) {

@@ -3379,11 +3245,11 @@
         request.seek_position =
             long_long_to_quad(session->ns_mover.md_position);
 
         if (ndmp_send_request(session->ns_connection, NDMP_NOTIFY_MOVER_PAUSED,
             NDMP_NO_ERR, (void *)&request, 0) < 0) {
-                NDMP_LOG(LOG_DEBUG,
+                syslog(LOG_ERR,
                     "Error sending notify_mover_paused_request");
                 return (-1);
         }
 
         /*

@@ -3422,12 +3288,10 @@
         } else {
                 if (session->ns_mover.md_data_addr.addr_type ==
                     NDMP_ADDR_LOCAL) {
                         rv = ndmp_wait_for_mover(session);
                 } else {
-                        NDMP_LOG(LOG_DEBUG, "Invalid address type %d",
-                            session->ns_mover.md_data_addr.addr_type);
                         rv = -1;
                 }
         }
 
         return (rv);

@@ -3460,21 +3324,21 @@
                  * Enforce mover window on write.
                  */
                 if (session->ns_mover.md_position >=
                     session->ns_mover.md_window_offset +
                     session->ns_mover.md_window_length) {
-                        NDMP_LOG(LOG_DEBUG, "MOVER_PAUSE_EOW");
+                        syslog(LOG_DEBUG, "MOVER_PAUSE_EOW");
 
                         if (mover_pause_v3(session, NDMP_MOVER_PAUSE_EOW) < 0)
                                 /* Operation aborted or connection terminated */
                                 return (-1);
 
                 }
 
                 n = write(session->ns_tape.td_fd, data, count);
                 if (n < 0) {
-                        NDMP_LOG(LOG_ERR, "Tape write error: %m.");
+                        syslog(LOG_ERR, "Tape write error: %m.");
                         return (-1);
                 } else if (n > 0) {
                         NS_ADD(wtape, n);
                         count -= n;
                         data += n;

@@ -3485,11 +3349,11 @@
                 if (count > 0) {
                         struct mtget mtstatus;
 
                         (void) ioctl(session->ns_tape.td_fd, MTIOCGET,
                             &mtstatus);
-                        NDMP_LOG(LOG_DEBUG, "EOM detected (%d written bytes, "
+                        syslog(LOG_DEBUG, "EOM detected (%d written bytes, "
                             "mover record %d, file #%d, block #%d)", n,
                             session->ns_tape.td_record_count,
                             mtstatus.mt_fileno, mtstatus.mt_blkno);
 
                         /*

@@ -3538,11 +3402,11 @@
             session->ns_mover.md_record_size - session->ns_mover.md_w_index);
 
         n = mover_tape_write_v3(session, session->ns_mover.md_buf,
             session->ns_mover.md_record_size);
         if (n < 0) {
-                NDMP_LOG(LOG_ERR, "Tape write error: %m.");
+                syslog(LOG_ERR, "Tape write error: %m.");
                 return (-1);
         }
 
         session->ns_mover.md_w_index = 0;
         session->ns_mover.md_position += n;

@@ -3573,11 +3437,10 @@
         ulong_t len;
 
         if (session->ns_mover.md_state == NDMP_MOVER_STATE_IDLE ||
             session->ns_mover.md_state == NDMP_MOVER_STATE_LISTEN ||
             session->ns_mover.md_state == NDMP_MOVER_STATE_HALTED) {
-                NDMP_LOG(LOG_DEBUG, "Invalid mover state to write data");
                 return (-1);
         }
 
         /*
          * A length of 0 indicates that any buffered data should be

@@ -3701,21 +3564,22 @@
          * is available to be read, a return of zero indicates the
          * connection has been closed.
          */
         if (n <= 0) {
                 if (n == 0) {
-                        NDMP_LOG(LOG_DEBUG, "Data connection closed");
+                        syslog(LOG_DEBUG, "Data connection closed");
                         ndmpd_mover_error(session,
                             NDMP_MOVER_HALT_CONNECT_CLOSED);
                 } else {
                         /* Socket is non-blocking, perhaps there are no data */
                         if (errno == EAGAIN) {
-                                NDMP_LOG(LOG_ERR, "No data to read");
+                                syslog(LOG_DEBUG, "No data to read");
                                 return;
                         }
 
-                        NDMP_LOG(LOG_ERR, "Failed to read from socket: %m");
+                        syslog(LOG_ERR,
+                            "Failed to read from socket %d: %m", fd);
                         ndmpd_mover_error(session,
                             NDMP_MOVER_HALT_INTERNAL_ERROR);
                 }
 
                 /* Save the index since mover_tape_flush_v3 resets it. */

@@ -3728,12 +3592,10 @@
                 }
 
                 return;
         }
 
-        NDMP_LOG(LOG_DEBUG, "n %d", n);
-
         session->ns_mover.md_w_index += n;
 
         if (session->ns_mover.md_w_index == session->ns_mover.md_record_size) {
                 n = mover_tape_write_v3(session, session->ns_mover.md_buf,
                     session->ns_mover.md_record_size);

@@ -3783,11 +3645,10 @@
                         /*
                          * If at beginning of file and read fails with EIO,
                          * then it's repeated attempt to read at EOT.
                          */
                         if (errno == EIO && tape_is_at_bof(session)) {
-                                NDMP_LOG(LOG_DEBUG, "Repeated read at EOT");
                                 pause_reason = NDMP_MOVER_PAUSE_EOM;
                                 NDMP_APILOG((void*)session, NDMP_LOG_NORMAL,
                                     ++ndmp_log_msg_id,
                                     "End of tape reached. Load next tape");
                         }

@@ -3794,18 +3655,18 @@
                         /*
                          * According to NDMPv4 spec preferred error code when
                          * trying to read from blank tape is NDMP_EOM_ERR.
                          */
                         else if (errno == EIO && tape_is_at_bot(session)) {
-                                NDMP_LOG(LOG_ERR,
+                                syslog(LOG_ERR,
                                     "Blank tape detected, returning EOM");
                                 NDMP_APILOG((void*)session, NDMP_LOG_NORMAL,
                                     ++ndmp_log_msg_id,
                                     "Blank tape. Load another tape");
                                 pause_reason = NDMP_MOVER_PAUSE_EOM;
                         } else {
-                                NDMP_LOG(LOG_ERR, "Tape read error: %m.");
+                                syslog(LOG_ERR, "Tape read error: %m.");
                                 return (TAPE_READ_ERR);
                         }
                 } else if (n > 0) {
                         NS_ADD(rtape, n);
                         data += n;

@@ -3820,16 +3681,16 @@
                          * wait for the client to either abort the data
                          * operation or continue the operation after changing
                          * the tape.
                          */
                         if (tape_is_at_bof(session)) {
-                                NDMP_LOG(LOG_DEBUG, "EOT detected");
+                                syslog(LOG_DEBUG, "EOT detected");
                                 pause_reason = NDMP_MOVER_PAUSE_EOM;
                                 NDMP_APILOG((void*)session, NDMP_LOG_NORMAL,
                                     ++ndmp_log_msg_id, "End of medium reached");
                         } else {
-                                NDMP_LOG(LOG_DEBUG, "EOF detected");
+                                syslog(LOG_DEBUG, "EOF detected");
                                 /* reposition the tape to BOT side of FM */
                                 fm_dance(session);
                                 pause_reason = NDMP_MOVER_PAUSE_EOF;
                                 NDMP_APILOG((void*)session, NDMP_LOG_NORMAL,
                                     ++ndmp_log_msg_id, "End of file reached.");

@@ -3883,11 +3744,11 @@
          * being called. The handler will be reinstalled in
          * ndmpd_mover_continue.
          */
         if (session->ns_mover.md_position >= session->ns_mover.md_window_offset
             + session->ns_mover.md_window_length) {
-                NDMP_LOG(LOG_DEBUG,
+                syslog(LOG_DEBUG,
                     "MOVER_PAUSE_SEEK(%llu)", session->ns_mover.md_position);
 
                 session->ns_mover.md_w_index = 0;
                 session->ns_mover.md_r_index = 0;
 

@@ -3902,11 +3763,11 @@
                 (void) ndmpd_remove_file_handler(session, fd);
 
                 if (ndmp_send_request(session->ns_connection,
                     NDMP_NOTIFY_MOVER_PAUSED, NDMP_NO_ERR,
                     (void *)&pause_request, 0) < 0) {
-                        NDMP_LOG(LOG_DEBUG,
+                        syslog(LOG_DEBUG,
                             "Sending notify_mover_paused request");
                         ndmpd_mover_error(session,
                             NDMP_MOVER_HALT_INTERNAL_ERROR);
                 }
                 return;

@@ -3916,11 +3777,11 @@
          * Read more data into the tape buffer if the buffer is empty.
          */
         if (session->ns_mover.md_w_index == 0) {
                 n = mover_tape_read_v3(session, session->ns_mover.md_buf);
 
-                NDMP_LOG(LOG_DEBUG,
+                syslog(LOG_DEBUG,
                     "read %u bytes from tape", n);
 
                 if (n <= 0) {
                         ndmpd_mover_error(session, (n == 0 ?
                             NDMP_MOVER_HALT_ABORTED

@@ -3964,22 +3825,18 @@
                     session->ns_mover.md_window_length -
                     session->ns_mover.md_position;
         else
                 wlen = session->ns_mover.md_bytes_left_to_read;
 
-        NDMP_LOG(LOG_DEBUG, "wlen window restrictions: %llu", wlen);
-
         /*
          * Now limit the length to the amount of data in the buffer.
          */
         if (wlen > session->ns_mover.md_w_index - session->ns_mover.md_r_index)
                 wlen = session->ns_mover.md_w_index -
                     session->ns_mover.md_r_index;
 
         len = wlen & 0xffffffff;
-        NDMP_LOG(LOG_DEBUG,
-            "buffer restrictions: wlen %llu len %u", wlen, len);
 
         /*
          * Write the data to the data connection.
          */
         n = write(session->ns_mover.md_sock,

@@ -3986,20 +3843,20 @@
             &session->ns_mover.md_buf[session->ns_mover.md_r_index], len);
 
         if (n < 0) {
                 /* Socket is non-blocking, perhaps the write queue is full */
                 if (errno == EAGAIN) {
-                        NDMP_LOG(LOG_ERR, "Cannot write to socket");
+                        syslog(LOG_ERR, "Cannot write to socket");
                         return;
                 }
-                NDMP_LOG(LOG_ERR, "Failed to write to socket: %m");
+                syslog(LOG_ERR, "Failed to write to socket: %m");
                 ndmpd_mover_error(session, NDMP_MOVER_HALT_CONNECT_CLOSED);
                 return;
         }
 
-        NDMP_LOG(LOG_DEBUG,
-            "wrote %u of %u bytes to data connection position %llu r_index %lu",
+        syslog(LOG_DEBUG,
+            "wrote %u of %u bytes to data connection position %lu r_index %lu",
             n, len, session->ns_mover.md_position,
             session->ns_mover.md_r_index);
 
         session->ns_mover.md_r_index += n;
         session->ns_mover.md_position += n;

@@ -4051,19 +3908,19 @@
 
         from_len = sizeof (from);
         session->ns_mover.md_sock = accept(fd, (struct sockaddr *)&from,
             &from_len);
 
-        NDMP_LOG(LOG_DEBUG, "sin: port %d addr %s", ntohs(from.sin_port),
+        syslog(LOG_DEBUG, "sin: port %d addr %s", ntohs(from.sin_port),
             inet_ntoa(IN_ADDR(from.sin_addr.s_addr)));
 
         (void) ndmpd_remove_file_handler(session, fd);
         (void) close(session->ns_mover.md_listen_sock);
         session->ns_mover.md_listen_sock = -1;
 
         if (session->ns_mover.md_sock < 0) {
-                NDMP_LOG(LOG_DEBUG, "Accept error: %m");
+                syslog(LOG_DEBUG, "Accept error: %m");
                 ndmpd_mover_error(session, NDMP_MOVER_HALT_CONNECT_ERROR);
                 return;
         }
 
         /*

@@ -4080,31 +3937,31 @@
          * which reads/writes data to md_sock socket. IO on socket must be
          * non-blocking, otherwise ndmpd would be unable to process other
          * incoming requests.
          */
         if (!set_socket_nonblock(session->ns_mover.md_sock)) {
-                NDMP_LOG(LOG_ERR, "Could not set non-blocking mode "
+                syslog(LOG_ERR, "Could not set non-blocking mode "
                     "on socket: %m");
                 ndmpd_mover_error(session, NDMP_MOVER_HALT_INTERNAL_ERROR);
                 return;
         }
 
-        NDMP_LOG(LOG_DEBUG, "sock fd: %d", session->ns_mover.md_sock);
+        syslog(LOG_DEBUG, "sock fd: %d", session->ns_mover.md_sock);
 
         if (session->ns_mover.md_mode == NDMP_MOVER_MODE_READ) {
                 if (ndmpd_add_file_handler(session, (void*)session,
                     session->ns_mover.md_sock, NDMPD_SELECT_MODE_READ,
                     HC_MOVER, mover_data_read_v3) < 0) {
                         ndmpd_mover_error(session,
                             NDMP_MOVER_HALT_INTERNAL_ERROR);
                         return;
                 }
-                NDMP_LOG(LOG_DEBUG, "Backup connection established by %s:%d",
+                syslog(LOG_DEBUG, "Backup connection established by %s:%d",
                     inet_ntoa(IN_ADDR(from.sin_addr.s_addr)),
                     ntohs(from.sin_port));
         } else {
-                NDMP_LOG(LOG_DEBUG, "Restore connection established by %s:%d",
+                syslog(LOG_DEBUG, "Restore connection established by %s:%d",
                     inet_ntoa(IN_ADDR(from.sin_addr.s_addr)),
                     ntohs(from.sin_port));
         }
 
         session->ns_mover.md_state = NDMP_MOVER_STATE_ACTIVE;

@@ -4142,11 +3999,11 @@
             accept_connection_v3) < 0) {
                 (void) close(session->ns_mover.md_listen_sock);
                 session->ns_mover.md_listen_sock = -1;
                 return (-1);
         }
-        NDMP_LOG(LOG_DEBUG, "IP %s port %d",
+        syslog(LOG_DEBUG, "IP %s port %d",
             inet_ntoa(*(struct in_addr *)addr), ntohs(*port));
         return (0);
 }
 
 

@@ -4179,11 +4036,11 @@
          * which reads/writes data to md_sock socket. IO on socket must be
          * non-blocking, otherwise ndmpd would be unable to process other
          * incoming requests.
          */
         if (!set_socket_nonblock(sock)) {
-                NDMP_LOG(LOG_ERR, "Could not set non-blocking mode "
+                syslog(LOG_ERR, "Could not set non-blocking mode "
                     "on socket: %m");
                 (void) close(sock);
                 return (NDMP_CONNECT_ERR);
         }
 

@@ -4227,11 +4084,10 @@
 
         count = 0;
         if (session->ns_mover.md_state == NDMP_MOVER_STATE_IDLE ||
             session->ns_mover.md_state == NDMP_MOVER_STATE_LISTEN ||
             session->ns_mover.md_state == NDMP_MOVER_STATE_HALTED) {
-                NDMP_LOG(LOG_DEBUG, "Invalid mover state to read data");
                 return (-1);
         }
 
         /*
          * Automatically increase the seek window if necessary.

@@ -4350,12 +4206,10 @@
 
                 session->ns_mover.md_w_index = n;
                 session->ns_mover.md_r_index = 0;
                 session->ns_mover.md_record_num++;
 
-                NDMP_LOG(LOG_DEBUG, "n: %d", n);
-
                 /*
                  * Discard data if the current data stream position is
                  * prior to the seek position. This is necessary if a seek
                  * request set the seek pointer to a position that is not a
                  * record boundary. The seek request handler can only position