Dave Kleikamp wrote:
> 
> ...
> > i_sem was already taken way up in do_truncate(), so that
> > approach may not be promising.
> 
> I think that's okay.  Now we take the IWRITE_LOCK near the level where
> we're called from the VFS, so we should be able to only grab i_sem in
> the paths that it's not already taken.  I think we will know when to
> take it and when not to.  If we take that approach, I'll have to make
> sure we protect those things that aren't protected by i_sem (in
> particular, anything that jfs_get_block may change).

Ah, I see.  So those dirty pages would come back after
recovery as file holes.

We could change the generic_writeback_mapping() definition so
the fs must pass in the address of its writepage function.  So
in the commit path you could call generic_writeback_mapping()
directly and pass in the address of:

int jfs_writepage_only_if_it_has_buffers(struct page *page)
{
        if (page_has_buffers(page))
                return jfs_writepage(page);
        set_page_dirty(page);   /* Not SetPageDirty()! */
        unlock_page(page);
        return 0;
}

I think I need to change generic_writeback_mapping() in that
manner anyway, to support multipage-BIO assembly.
 
> ...
> For right now, we could probably remove this snippet of code altogether
> until we engineer a more efficient way of ordering the data and metadata
> writes.

OK...  It'll probably make the fs faster ;)  I'll assume that
you will raise the patch.  Thanks.



-
_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion

Reply via email to