diff options
author | Chris Kirby <Chris.Kirby@sun.com> | 2009-10-20 10:54:10 -0600 |
---|---|---|
committer | Chris Kirby <Chris.Kirby@sun.com> | 2009-10-20 10:54:10 -0600 |
commit | bdd1c119a2da4c25e7b3d9db5c432fd4925e3b0e (patch) | |
tree | bb7a955771b00c4f4eb9f3418ce27b80699595dd /usr/src | |
parent | 56664548661c43ae04de4a32bce3510ed36aeaf9 (diff) | |
download | illumos-gate-bdd1c119a2da4c25e7b3d9db5c432fd4925e3b0e.tar.gz |
6891564 7410C - zfs panic in recv_new_check()
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/fs/zfs/dmu_send.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/usr/src/uts/common/fs/zfs/dmu_send.c b/usr/src/uts/common/fs/zfs/dmu_send.c index 658458b053..003d8dc0fd 100644 --- a/usr/src/uts/common/fs/zfs/dmu_send.c +++ b/usr/src/uts/common/fs/zfs/dmu_send.c @@ -540,7 +540,6 @@ dmu_recv_begin(char *tofs, char *tosnap, struct drr_begin *drrb, drc->drc_real_ds = rbsa.ds; } else if (err == ENOENT) { /* target fs does not exist; must be a full backup or clone */ - dsl_dataset_t *parent; char *cp; /* @@ -553,14 +552,14 @@ dmu_recv_begin(char *tofs, char *tosnap, struct drr_begin *drrb, /* Open the parent of tofs */ cp = strrchr(tofs, '/'); *cp = '\0'; - err = dsl_dataset_hold(tofs, FTAG, &parent); + err = dsl_dataset_hold(tofs, FTAG, &ds); *cp = '/'; if (err) return (err); err = dsl_sync_task_do(ds->ds_dir->dd_pool, recv_new_check, recv_new_sync, ds->ds_dir, &rbsa, 5); - dsl_dataset_rele(parent, FTAG); + dsl_dataset_rele(ds, FTAG); if (err) return (err); drc->drc_logical_ds = drc->drc_real_ds = rbsa.ds; |