From: Boris Protopopov Date: Wed, 19 Nov 2014 17:08:08 +0000 (-0500) Subject: Correct error returns to unify cross-pool operation error handling X-Git-Tag: zfs-0.6.4~87 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9063f65476b7b7d78ccf096fec890b8727117e2a;p=zfs Correct error returns to unify cross-pool operation error handling Signed-off-by: Boris Protopopov Signed-off-by: Brian Behlendorf Closes #2911 --- diff --git a/module/zfs/dsl_dir.c b/module/zfs/dsl_dir.c index 7eafdfd2e..4cbe04e2d 100644 --- a/module/zfs/dsl_dir.c +++ b/module/zfs/dsl_dir.c @@ -321,7 +321,7 @@ dsl_dir_hold(dsl_pool_t *dp, const char *name, void *tag, /* Make sure the name is in the specified pool. */ spaname = spa_name(dp->dp_spa); if (strcmp(buf, spaname) != 0) { - err = SET_ERROR(EINVAL); + err = SET_ERROR(EXDEV); goto error; } @@ -1209,7 +1209,7 @@ dsl_dir_rename_check(void *arg, dmu_tx_t *tx) if (dd->dd_pool != newparent->dd_pool) { dsl_dir_rele(newparent, FTAG); dsl_dir_rele(dd, FTAG); - return (SET_ERROR(ENXIO)); + return (SET_ERROR(EXDEV)); } /* new name should not already exist */