int si_nodefree(sinode *n, sr *r, int gc) { int rcret = 0; int rc; if (gc && n->file.file) { rc = ss_fileunlink(n->file.file); if (ssunlikely(rc == -1)) { sr_malfunction(r->e, "db file '%s' unlink error: %s", n->file.file, strerror(errno)); rcret = -1; } } si_nodefree_branches(n, r); rc = si_nodeclose(n, r); if (ssunlikely(rc == -1)) rcret = -1; ss_free(r->a, n); return rcret; }
int si_nodefree(sinode *n, sr *r, int gc) { int rcret = 0; int rc; if (gc && ss_pathis_set(&n->file.path)) { ss_fileadvise(&n->file, 0, 0, n->file.size); rc = ss_vfsunlink(r->vfs, ss_pathof(&n->file.path)); if (ssunlikely(rc == -1)) { sr_malfunction(r->e, "db file '%s' unlink error: %s", ss_pathof(&n->file.path), strerror(errno)); rcret = -1; } } si_nodefree_branches(n, r); rc = si_nodeclose(n, r, gc); if (ssunlikely(rc == -1)) rcret = -1; ss_free(r->a, n); return rcret; }