X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=osl.c;h=19d7961ecc261dfe497e2a81361ae24ba53eb529;hb=c458b9d45e7c6ddda6285fca3797fddff815bd0a;hp=0b14447b296c736ecaed7d831e0801a45c99296f;hpb=a48537c245151810e33b7ab9915b5f0b9ea9e75f;p=paraslash.git diff --git a/osl.c b/osl.c index 0b14447b..19d7961e 100644 --- a/osl.c +++ b/osl.c @@ -679,7 +679,7 @@ int osl_create_table(const struct osl_table_description *desc) continue; if (!table_dir) { ret = para_mkdir(desc->dir, 0777); - if (ret < 0 && ret != -E_EXIST) + if (ret < 0 && !is_errno(-ret, EEXIST)) goto out; table_dir = make_message("%s/%s", desc->dir, desc->name); @@ -1226,13 +1226,10 @@ int osl_open_table(const struct osl_table_description *table_desc, ret = stat(dirname, &statbuf); free(dirname); if (ret < 0) { - if (errno == ENOENT) - ret = -E_NOENT; - else - ret = -E_STAT; + ret = -ERRNO_TO_PARA_ERROR(errno); goto err; } - ret = -E_NOTDIR; + ret = -ERRNO_TO_PARA_ERROR(ENOTDIR); if (!S_ISDIR(statbuf.st_mode)) goto err; } @@ -1265,7 +1262,7 @@ static int create_disk_storage_object_dir(const struct osl_table *t, dirname = disk_storage_dirname(t, col_num, ds_name); ret = para_mkdir(dirname, 0777); free(dirname); - if (ret < 0 && ret != -E_EXIST) + if (ret < 0 && !is_errno(-ret, EEXIST)) return ret; return 1; } @@ -1358,15 +1355,11 @@ static int delete_disk_storage_file(const struct osl_table *t, unsigned col_num, const char *ds_name) { char *dirname, *filename = disk_storage_path(t, col_num, ds_name); - int ret = unlink(filename); + int ret = unlink(filename), err = errno; - PARA_DEBUG_LOG("deleted %s\n", filename); free(filename); - if (ret < 0) { - if (errno == ENOENT) - return -E_NOENT; - return -E_UNLINK; - } + if (ret < 0) + return -ERRNO_TO_PARA_ERROR(err); if (!(t->desc->flags & OSL_LARGE_TABLE)) return 1; dirname = disk_storage_dirname(t, col_num, ds_name); @@ -1877,7 +1870,7 @@ int osl_update_object(struct osl_table *t, const struct osl_row *r, if (ret < 0) return ret; ret = delete_disk_storage_file(t, col_num, ds_name); - if (ret < 0 && ret != -E_NOENT) { + if (ret < 0 && !is_errno(-ret, ENOENT)) { free(ds_name); return ret; }