/* Find atom of name */ static int find_atom(struct inode *atable, const char *name, unsigned len, atom_t *atom) { struct sb *sb = tux_sb(atable->i_sb); struct buffer_head *buffer; struct tux3_dirent *entry; entry = tux_find_entry(atable, name, len, &buffer, sb->atomdictsize); if (IS_ERR(entry)) { int err = PTR_ERR(entry); if (err == -ENOENT) return -ENODATA; return err; } *atom = entry_atom(entry); blockput(buffer); return 0; }
/* Find atom of name */ static int find_atom(struct inode *atable, const char *name, unsigned len, atom_t *atom) { if(DEBUG_MODE_K==1) { printf("\t\t\t\t%25s[K] %25s %4d #in\n",__FILE__,__func__,__LINE__); } struct sb *sb = tux_sb(atable->i_sb); struct buffer_head *buffer; tux_dirent *entry; entry = tux_find_entry(atable, name, len, &buffer, sb->atomdictsize); if (IS_ERR(entry)) { int err = PTR_ERR(entry); if (err == -ENOENT) return -ENODATA; return err; } *atom = entry_atom(entry); blockput(buffer); return 0; }
tux_dirent *tux_find_dirent(struct inode *dir, const struct qstr *qstr, struct buffer_head **result) { return tux_find_entry(dir, (const char *)qstr->name, qstr->len, result, dir->i_size); }