diff options
author | Arjun <arjsharm@redhat.com> | 2018-10-22 13:08:53 +0530 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2018-10-24 07:09:45 +0000 |
commit | 63a8d72736aec13ae90eb1a425ffd2078e5236ad (patch) | |
tree | f321d37b916b1ffdbab5894c1bba3510b6f64da7 /xlators | |
parent | c34e4161f3cb6539ec83a9020f3d27eb4759a975 (diff) |
src/glusterd-snapshot-utils.c: dereferencing the snap_vol before freeing it
The patch fixes CID: 1325520
Change-Id: Ic7d3fac6adabe96d1d44f13b57d6dc67da0476d1
updates: bz#789278
Signed-off-by: Arjun <arjsharm@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c index 19ccefa7d2f..5a9e198454d 100644 --- a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c @@ -81,43 +81,43 @@ glusterd_cleanup_snaps_for_volume(glusterd_volinfo_t *volinfo) cds_list_for_each_entry_safe(snap_vol, dummy_snap_vol, &volinfo->snap_volumes, snapvol_list) { - ret = glusterd_store_delete_volume(snap_vol); + snap = snap_vol->snapshot; + ret = glusterd_store_delete_snap(snap); if (ret) { gf_msg(this->name, GF_LOG_WARNING, 0, GD_MSG_VOL_DELETE_FAIL, "Failed to remove " - "volume %s from store", - snap_vol->volname); + "snap %s from store", + snap->snapname); op_ret = ret; continue; } - ret = glusterd_volinfo_delete(snap_vol); + ret = glusterd_snapobject_delete(snap); if (ret) { gf_msg(this->name, GF_LOG_WARNING, 0, GD_MSG_VOL_DELETE_FAIL, - "Failed to remove " - "volinfo %s ", - snap_vol->volname); + "Failed to delete " + "snap object %s", + snap->snapname); op_ret = ret; continue; } - snap = snap_vol->snapshot; - ret = glusterd_store_delete_snap(snap); + ret = glusterd_store_delete_volume(snap_vol); if (ret) { gf_msg(this->name, GF_LOG_WARNING, 0, GD_MSG_VOL_DELETE_FAIL, "Failed to remove " - "snap %s from store", - snap->snapname); + "volume %s from store", + snap_vol->volname); op_ret = ret; continue; } - ret = glusterd_snapobject_delete(snap); + ret = glusterd_volinfo_delete(snap_vol); if (ret) { gf_msg(this->name, GF_LOG_WARNING, 0, GD_MSG_VOL_DELETE_FAIL, - "Failed to delete " - "snap object %s", - snap->snapname); + "Failed to remove " + "volinfo %s ", + snap_vol->volname); op_ret = ret; continue; } |