diff options
author | Emmanuel Dreyfus <manu@netbsd.org> | 2013-06-04 06:08:24 +0200 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-06-08 14:56:08 -0700 |
commit | bb0bbfecd609fff1a3890775b3119a552aba0e18 (patch) | |
tree | 25be42a3af105ab6292c84111541b9b6853adb61 | |
parent | 0f741cec5f031dc1c6e1b96e0f5c35d0f374af4d (diff) |
Fix crash in dht_migration_complete_check_task because of NULL fd
This is a backport of Ia5a5d40bcea7bfb320ef7096af1e035b8847d4ff
BUG: 960055
Change-Id: Ibf3547a775d7ca2f3a097c880cdf38ffafb322da
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/5139
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
-rw-r--r-- | xlators/cluster/dht/src/dht-helper.c | 2 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-inode-write.c | 2 |
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 9a00fe6481c..ef29e3f3a8c 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 d4a3ecc391c..5e85ca536af 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; } |