getdents64 problem in 2.6.23
David Woodhouse
dwmw2 at infradead.org
Fri Oct 26 19:17:40 EDT 2007
On Sat, 2007-10-27 at 01:03 +0200, Joakim Tjernlund wrote:
> Is this what you mean(just a stupid hack for now)?
> //*prev = this->next;
> jffs2_mark_node_obsolete(c, (this->raw));
> this->raw = NULL;
> //jffs2_free_full_dirent(this);
Yeah, something like that. And we also need to modify
jffs2_add_fd_to_list() so that if we later add a new dirent which
_replaces_ this one, it doesn't oops after calling
jffs2_mark_node_obsolete(c, fd->raw);
> Perhaps add a jffs2_add_fd_to_list(c, this, &dir_f->dents)?
Nah, no need for that. It's already _in_ the list.
> How do I find where the filedescriptor is closed?
We probably need to implement a release() operation in the
jffs2_dir_operations (top of dir.c), which will remove the fake
'deletion' dirents if !atomic_read(&inode->i_count). Or something like
that.
--
dwmw2
More information about the linux-mtd
mailing list