Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/mfs/mfs_rw.c

    r95027b5 r9d58539  
    104104    bool write_mode, uint32_t w_block)
    105105{
    106         int nr_direct;
     106        int r, nr_direct;
    107107        int ptrs_per_block;
    108         uint32_t *ind_zone = NULL, *ind2_zone = NULL;
    109         int r = EOK;
     108        uint32_t *ind_zone, *ind2_zone;
    110109
    111110        struct mfs_ino_info *ino_i = mnode->ino_i;
     
    131130                        ino_i->dirty = true;
    132131                }
    133                 goto out;
     132                return EOK;
    134133        }
    135134
     
    143142                                r = alloc_zone_and_clear(inst, &zone);
    144143                                if (r != EOK)
    145                                         goto out;
     144                                        return r;
    146145
    147146                                ino_i->i_izone[0] = zone;
     
    150149                                /* Sparse block */
    151150                                *b = 0;
    152                                 goto out;
     151                                return EOK;
    153152                        }
    154153                }
     
    156155                r = read_ind_zone(inst, ino_i->i_izone[0], &ind_zone);
    157156                if (r != EOK)
    158                         goto out;
     157                        return r;
    159158
    160159                *b = ind_zone[rblock];
     
    164163                }
    165164
    166                 goto out;
     165                goto out_free_ind1;
    167166        }
    168167
     
    177176                        r = alloc_zone_and_clear(inst, &zone);
    178177                        if (r != EOK)
    179                                 goto out;
     178                                return r;
    180179
    181180                        ino_i->i_izone[1] = zone;
     
    184183                        /* Sparse block */
    185184                        *b = 0;
    186                         goto out;
     185                        return EOK;
    187186                }
    188187        }
     
    190189        r = read_ind_zone(inst, ino_i->i_izone[1], &ind_zone);
    191190        if (r != EOK)
    192                 goto out;
     191                return r;
    193192
    194193        /*
     
    204203                        r = alloc_zone_and_clear(inst, &zone);
    205204                        if (r != EOK)
    206                                 goto out;
     205                                goto out_free_ind1;
    207206
    208207                        ind_zone[ind2_off] = zone;
     
    210209                } else {
    211210                        /* Sparse block */
     211                        r = EOK;
    212212                        *b = 0;
    213                         goto out;
     213                        goto out_free_ind1;
    214214                }
    215215        }
     
    217217        r = read_ind_zone(inst, ind_zone[ind2_off], &ind2_zone);
    218218        if (r != EOK)
    219                 goto out;
     219                goto out_free_ind1;
    220220
    221221        *b = ind2_zone[rblock - (ind2_off * ptrs_per_block)];
     
    225225        }
    226226
    227 out:
     227        r = EOK;
     228
    228229        free(ind2_zone);
     230out_free_ind1:
    229231        free(ind_zone);
    230232        return r;
Note: See TracChangeset for help on using the changeset viewer.