diff options
Diffstat (limited to 'xlators/storage')
-rw-r--r-- | xlators/storage/bd/src/bd.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/xlators/storage/bd/src/bd.c b/xlators/storage/bd/src/bd.c index 405474c587d..1eb5cd15838 100644 --- a/xlators/storage/bd/src/bd.c +++ b/xlators/storage/bd/src/bd.c @@ -1102,7 +1102,7 @@ out: if (local->fd) BD_STACK_UNWIND (fsetxattr, frame, op_ret, op_errno, NULL); else - BD_STACK_UNWIND (setxattr, frame, op_errno, op_errno, NULL); + BD_STACK_UNWIND (setxattr, frame, op_ret, op_errno, NULL); return 0; } @@ -2328,11 +2328,15 @@ init (xlator_t *this) return 0; error: - GF_FREE (_private->vg); - if (_private->handle) - lvm_quit (_private->handle); + if (_private) { + GF_FREE (_private->vg); + if (_private->handle) + lvm_quit (_private->handle); + GF_FREE (_private); + } + mem_pool_destroy (this->local_pool); - GF_FREE (_private); + return -1; } |