Mercurial > illumos > illumos-gate
changeset 9012:ee7366019c63
6810894 OFAST NDMP: Remote restore failed via NBU
6787737 Amber Road NDMP: Backup fails with "Out of memory" error on NDMP client
6807614 EBS744:old file recover on NAS 7000 (amber road) over new file, only recovers ACLs
6807326 ndmpd should use timeout on SCMD_TEST_UNIT_READY
author | Reza Sabdar <Reza.Sabdar@Sun.COM> |
---|---|
date | Wed, 11 Mar 2009 10:34:45 -0700 |
parents | cb6d246c25a8 |
children | fd216110d8a6 |
files | usr/src/cmd/ndmpd/ndmp/ndmpd_main.c usr/src/cmd/ndmpd/ndmp/ndmpd_util.c usr/src/cmd/ndmpd/tlm/tlm_restore_writer.c usr/src/cmd/ndmpd/tlm/tlm_traverse.c |
diffstat | 4 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/ndmpd/ndmp/ndmpd_main.c Wed Mar 11 15:40:10 2009 +0100 +++ b/usr/src/cmd/ndmpd/ndmp/ndmpd_main.c Wed Mar 11 10:34:45 2009 -0700 @@ -50,7 +50,6 @@ #include "ndmpd.h" #include "ndmpd_common.h" - /* zfs library handle & mutex */ libzfs_handle_t *zlibh; mutex_t zlib_mtx; @@ -259,10 +258,12 @@ (void) sigaction(SIGHUP, &act, NULL); (void) sigaction(SIGINT, &act, NULL); (void) sigaction(SIGUSR1, &act, NULL); + (void) sigaction(SIGPIPE, &act, NULL); (void) sigdelset(&set, SIGTERM); (void) sigdelset(&set, SIGHUP); (void) sigdelset(&set, SIGINT); (void) sigdelset(&set, SIGUSR1); + (void) sigdelset(&set, SIGPIPE); (void) daemonize_init(argv[0]); @@ -302,6 +303,9 @@ case 0: break; + case SIGPIPE: + break; + case SIGHUP: /* Refresh SMF properties */ if (ndmpd_load_prop())
--- a/usr/src/cmd/ndmpd/ndmp/ndmpd_util.c Wed Mar 11 15:40:10 2009 +0100 +++ b/usr/src/cmd/ndmpd/ndmp/ndmpd_util.c Wed Mar 11 10:34:45 2009 -0700 @@ -2595,6 +2595,7 @@ ucmd.uscsi_cdb = (caddr_t)&cdb; ucmd.uscsi_cdblen = CDB_GROUP0; ucmd.uscsi_flags |= USCSI_SILENT; + ucmd.uscsi_timeout = 60; /* Allow maximum 1 min */ retval = ioctl(dev_id, USCSICMD, &ucmd);
--- a/usr/src/cmd/ndmpd/tlm/tlm_restore_writer.c Wed Mar 11 15:40:10 2009 +0100 +++ b/usr/src/cmd/ndmpd/tlm/tlm_restore_writer.c Wed Mar 11 10:34:45 2009 -0700 @@ -1160,7 +1160,7 @@ } if (want_this_file) { - *fp = open(real_name, O_CREAT | O_WRONLY, + *fp = open(real_name, O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR | S_IWUSR); if (*fp == -1) { NDMP_LOG(LOG_ERR,
--- a/usr/src/cmd/ndmpd/tlm/tlm_traverse.c Wed Mar 11 15:40:10 2009 +0100 +++ b/usr/src/cmd/ndmpd/tlm/tlm_traverse.c Wed Mar 11 10:34:45 2009 -0700 @@ -1,5 +1,5 @@ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -259,6 +259,12 @@ return (errno); fh->fh_fid = st->st_ino; + + if (!S_ISDIR(st->st_mode)) { + fh->fh_fpath = NULL; + return (0); + } + if (pl) fh->fh_fpath = fs_add_pathlist(path, pl); else