From 9063f65476b7b7d78ccf096fec890b8727117e2a Mon Sep 17 00:00:00 2001 From: Boris Protopopov Date: Wed, 19 Nov 2014 12:08:08 -0500 Subject: [PATCH] Correct error returns to unify cross-pool operation error handling Signed-off-by: Boris Protopopov Signed-off-by: Brian Behlendorf Closes #2911 --- module/zfs/dsl_dir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/zfs/dsl_dir.c b/module/zfs/dsl_dir.c index 7eafdfd2efa4..4cbe04e2d0ef 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 */