diff options
author | Reza Sabdar <Reza.Sabdar@Sun.COM> | 2009-03-11 10:34:45 -0700 |
---|---|---|
committer | Reza Sabdar <Reza.Sabdar@Sun.COM> | 2009-03-11 10:34:45 -0700 |
commit | c211fc479225fa54805cf480633bf6689ca9a2db (patch) | |
tree | 64d4c0ad27a910ab2c653ce51567bd6311032d53 /usr/src | |
parent | 371d72dab1d0327bfe09b175ad38db564e3e245a (diff) | |
download | illumos-gate-c211fc479225fa54805cf480633bf6689ca9a2db.tar.gz |
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
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/ndmpd/ndmp/ndmpd_main.c | 6 | ||||
-rw-r--r-- | usr/src/cmd/ndmpd/ndmp/ndmpd_util.c | 1 | ||||
-rw-r--r-- | usr/src/cmd/ndmpd/tlm/tlm_restore_writer.c | 2 | ||||
-rw-r--r-- | usr/src/cmd/ndmpd/tlm/tlm_traverse.c | 8 |
4 files changed, 14 insertions, 3 deletions
diff --git a/usr/src/cmd/ndmpd/ndmp/ndmpd_main.c b/usr/src/cmd/ndmpd/ndmp/ndmpd_main.c index 07ab251c98..20ceebc331 100644 --- a/usr/src/cmd/ndmpd/ndmp/ndmpd_main.c +++ b/usr/src/cmd/ndmpd/ndmp/ndmpd_main.c @@ -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 @@ main(int argc, char *argv[]) (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 @@ main(int argc, char *argv[]) case 0: break; + case SIGPIPE: + break; + case SIGHUP: /* Refresh SMF properties */ if (ndmpd_load_prop()) diff --git a/usr/src/cmd/ndmpd/ndmp/ndmpd_util.c b/usr/src/cmd/ndmpd/ndmp/ndmpd_util.c index c237d0ca89..e88edc4dce 100644 --- a/usr/src/cmd/ndmpd/ndmp/ndmpd_util.c +++ b/usr/src/cmd/ndmpd/ndmp/ndmpd_util.c @@ -2595,6 +2595,7 @@ scsi_test_unit_ready(int dev_id) 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); diff --git a/usr/src/cmd/ndmpd/tlm/tlm_restore_writer.c b/usr/src/cmd/ndmpd/tlm/tlm_restore_writer.c index 6c4c072f0f..3ced00a07d 100644 --- a/usr/src/cmd/ndmpd/tlm/tlm_restore_writer.c +++ b/usr/src/cmd/ndmpd/tlm/tlm_restore_writer.c @@ -1160,7 +1160,7 @@ restore_file(int *fp, } 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, diff --git a/usr/src/cmd/ndmpd/tlm/tlm_traverse.c b/usr/src/cmd/ndmpd/tlm/tlm_traverse.c index f0efab40b0..11f33cff0f 100644 --- a/usr/src/cmd/ndmpd/tlm/tlm_traverse.c +++ b/usr/src/cmd/ndmpd/tlm/tlm_traverse.c @@ -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 @@ fs_getstat(char *path, fs_fhandle_t *fh, struct stat64 *st, path_list_t **pl) 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 |