summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/cluster/dht/src/dht-helper.c2
-rw-r--r--xlators/cluster/dht/src/dht-inode-write.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c
index 9a00fe648..ef29e3f3a 100644
--- a/xlators/cluster/dht/src/dht-helper.c
+++ b/xlators/cluster/dht/src/dht-helper.c
@@ -799,6 +799,8 @@ dht_migration_complete_check_task (void *data)
local->cached_subvol = dst_node;
ret = 0;
+ if (!local->fd)
+ goto out;
/* once we detect the migration complete, the fd-ctx is no more
required.. delete the ctx, and do one extra 'fd_unref' for open fd */
ret = fd_ctx_del (local->fd, this, NULL);
diff --git a/xlators/cluster/dht/src/dht-inode-write.c b/xlators/cluster/dht/src/dht-inode-write.c
index d4a3ecc39..5e85ca536 100644
--- a/xlators/cluster/dht/src/dht-inode-write.c
+++ b/xlators/cluster/dht/src/dht-inode-write.c
@@ -210,7 +210,7 @@ dht_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
dht_iatt_merge (this, &local->stbuf, postbuf, NULL);
dht_iatt_merge (this, &local->prebuf, prebuf, NULL);
ret = fd_ctx_get (local->fd, this, NULL);
- if (!ret) {
+ if (!ret || !local->fd) {
dht_truncate2 (this, frame, 0);
return 0;
}