diff options
Diffstat (limited to 'src/erasurecode.c')
-rw-r--r-- | src/erasurecode.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/erasurecode.c b/src/erasurecode.c index 65b4456..129ea4b 100644 --- a/src/erasurecode.c +++ b/src/erasurecode.c @@ -562,18 +562,20 @@ int liberasurecode_decode(int desc, goto out; } - /* - * Try to re-assebmle the original data before attempting a decode - */ - ret = fragments_to_string(k, m, - available_fragments, num_fragments, - out_data, out_data_len); - - /* shss (ntt_backend) must force to decode */ - // TODO: Add a frag and function to handle whether the backend want to decode or not. - if (ret == 0 && instance->common.id != 5) { - /* We were able to get the original data without decoding! */ - goto out; + if (instance->common.id != 5) { + /* shss (ntt_backend) must force to decode */ + // TODO: Add a frag and function to handle whether the backend want to decode or not. + /* + * Try to re-assebmle the original data before attempting a decode + */ + ret = fragments_to_string(k, m, + available_fragments, num_fragments, + out_data, out_data_len); + + if (ret == 0) { + /* We were able to get the original data without decoding! */ + goto out; + } } /* |