{
struct osd_it_ea *it = (struct osd_it_ea *)di;
struct osd_object *obj = it->oie_obj;
-
+ struct inode *inode = obj->oo_inode;
ENTRY;
+ it->oie_file.f_op->release(inode, &it->oie_file);
lu_object_put(env, &obj->oo_dt.do_lu);
EXIT;
}
{
struct osd_it_ea *it = (struct osd_it_ea *)buf;
struct dirent64 *dirent = &it->oie_dirent64;
- int reclen = LDISKFS_DIR_REC_LEN(namelen);
-
ENTRY;
if (it->oie_namelen)
strncpy(dirent->d_name, name, LDISKFS_NAME_LEN);
dirent->d_name[namelen] = 0;
dirent->d_ino = ino;
- dirent->d_off = offset;
- dirent->d_reclen = reclen;
it->oie_namelen = namelen;
it->oie_curr_pos = offset;
it->oie_next_pos = it->oie_file.f_pos;
- if(!result && it->oie_namelen == 0)
+ if (it->oie_namelen == 0)
result = -EIO;
RETURN(result);
}
rc = osd_ea_fid_get(env, dentry, (struct dt_rec*) rec);
+ if (rc != 0)
+ rec = ERR_PTR(rc);
iput(inode);
RETURN((struct dt_rec *)rec);
int rc;
ENTRY;
- it->oie_curr_pos = it->oie_next_pos = hash;
+ it->oie_curr_pos = hash;
rc = osd_ldiskfs_it_fill(di);
if (rc == 0)