/*
- * Copyright (C) 2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
int cwd_fd, ret2, ret = para_opendir(dirname, &dir, &cwd_fd);
if (ret < 0)
- return ret == -E_CHDIR_PERM? 1 : ret;
+ return ret == -ERRNO_TO_PARA_ERROR(EACCES)? 1 : ret;
/* scan cwd recursively */
while ((entry = readdir(dir))) {
mode_t m;
static void column_name_hash(const char *col_name, HASH_TYPE *hash)
{
- return hash_function(col_name, strlen(col_name), hash);
+ hash_function(col_name, strlen(col_name), hash);
}
static int init_column_descriptions(struct osl_table *t)
{
struct osl_column *col;
struct rb_node *node;
- int ret = check_rbtree_col(t, col_num, &col);
+ unsigned num_rows;
+ int ret;
+ if (n == 0)
+ return -E_RB_KEY_NOT_FOUND;
+ ret = osl_get_num_rows(t, &num_rows);
+ if (ret < 0)
+ return ret;
+ if (n > num_rows)
+ return -E_RB_KEY_NOT_FOUND;
+ ret = check_rbtree_col(t, col_num, &col);
if (ret < 0)
return ret;
node = rb_nth(col->rbtree.rb_node, n);