void mp_remove_1_svc_nb(void * pt_req, rozorpc_srv_ctx_t *rozorpc_srv_ctx_p, void * pt_resp, uint32_t cnx_id) { mp_status_ret_t * ret = (mp_status_ret_t *) pt_resp; mp_remove_arg_t * args = (mp_remove_arg_t*) pt_req; storage_t *st = 0; DEBUG_FUNCTION; START_PROFILING(remove); ret->status = MP_FAILURE; if ((st = storaged_lookup(args->cid, args->sid)) == 0) { ret->mp_status_ret_t_u.error = errno; goto out; } if (storage_rm_file(st, (unsigned char *) args->fid) != 0) { ret->mp_status_ret_t_u.error = errno; goto out; } ret->status = MP_SUCCESS; out: STOP_PROFILING(remove); }
int main(int argc, char **argv) { storage_t st; sid_t sid = 0; sstat_t sst; fid_t fid; //bin_t *bins; rozofs_initialize(LAYOUT_2_3_4); storage_initialize(&st, sid, "/tmp"); if (storage_stat(&st, &sst) != 0) { perror("failed to stat storage"); exit(-1); } printf("size: %" PRIu64 ", free: %" PRIu64 "\n", sst.size, sst.free); uuid_generate(fid); // Write some bins (15 prj) //bins = xmalloc(rozofs_psizes[0] * 15); /* if (storage_write(&st, fid, 0, 10, 15, bins) != 0) { perror("failed to write bins"); exit(-1); } */ if (storage_truncate(&st, fid, 0, 10) != 0) { perror("failed to truncate pfile"); exit(-1); } if (storage_rm_file(&st, fid) != 0) { perror("failed to remove pfile"); exit(-1); } storage_release(&st); exit(0); }
mp_status_ret_t *mp_remove_1_svc(mp_remove_arg_t * args, struct svc_req * req) { static mp_status_ret_t ret; storage_t *st = 0; DEBUG_FUNCTION; START_PROFILING(remove); ret.status = MP_FAILURE; if ((st = storaged_lookup(args->cid, args->sid)) == 0) { ret.mp_status_ret_t_u.error = errno; goto out; } if (storage_rm_file(st, args->layout, (sid_t *) args->dist_set, (unsigned char *) args->fid) != 0) { ret.mp_status_ret_t_u.error = errno; goto out; } ret.status = MP_SUCCESS; out: STOP_PROFILING(remove); return &ret; }