On Mon, 2007-03-05 at 09:36 -0600, Dave Kleikamp wrote: > On Mon, 2007-03-05 at 09:59 -0500, Chuck Ebbert wrote: > > Will Trives wrote: > > > > [adding JFS maintainer to cc:] > > Thanks for adding me to the thread. > > > Some kind of JFS problem? > > I don' t know yet. I was notified of the problem through bugzilla: > http://bugzilla.kernel.org/show_bug.cgi?id=8128 > > The problem appears that a non-uptodate page has been marked dirty. I > haven't found much in the way of changes between 2.6.20 and the current > git tree to explain this. There's this one: > http://git.kernel.org/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=22c8ca78f20724676b6006232bf06cc3e9299539 > > I'm looking for for a caller to ->prepare_write() which marks the page > dirty without calling ->commit_write().
I think I just found it: nobh_truncate_page(): ret = a_ops->prepare_write(NULL, page, offset, to); if (ret == 0) { kaddr = kmap_atomic(page, KM_USER0); memset(kaddr + offset, 0, PAGE_CACHE_SIZE - offset); flush_dcache_page(page); kunmap_atomic(kaddr, KM_USER0); set_page_dirty(page); } unlock_page(page); page_cache_release(page); > > Will, could you try reverting that patch? If that fails, narrowing the > problem down with git-bisect would be helpful, if you have the time. Better yet, try this patch: Signed-off-by: Dave Kleikamp <[EMAIL PROTECTED]> diff -Nurp linux-orig/fs/buffer.c linux/fs/buffer.c --- linux-orig/fs/buffer.c 2007-02-22 07:59:01.000000000 -0600 +++ linux/fs/buffer.c 2007-03-05 09:47:07.000000000 -0600 @@ -2466,6 +2466,7 @@ int nobh_truncate_page(struct address_sp memset(kaddr + offset, 0, PAGE_CACHE_SIZE - offset); flush_dcache_page(page); kunmap_atomic(kaddr, KM_USER0); + SetPageUptodate(page); set_page_dirty(page); } unlock_page(page); -- David Kleikamp IBM Linux Technology Center - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/