Re: [PATCH 3/3] ext3: introduce ext3_error_remove_page

From: Naoya Horiguchi
Date: Thu Oct 25 2012 - 16:35:10 EST


On Thu, Oct 25, 2012 at 09:45:51PM +0200, Jan Kara wrote:
> On Thu 25-10-12 11:12:49, Naoya Horiguchi wrote:
> > What I suggested in the previous patch for ext4 is ditto with ext3,
> > so do the same thing for ext3.
> >
> > Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
> > ---
> > fs/ext3/inode.c | 33 ++++++++++++++++++++++++++++++---
> > 1 file changed, 30 insertions(+), 3 deletions(-)
> >
> > diff --git v3.7-rc2.orig/fs/ext3/inode.c v3.7-rc2/fs/ext3/inode.c
> > index 7e87e37..7f708bf 100644
> > --- v3.7-rc2.orig/fs/ext3/inode.c
> > +++ v3.7-rc2/fs/ext3/inode.c
> > @@ -1967,6 +1967,33 @@ static int ext3_journalled_set_page_dirty(struct page *page)
> > return __set_page_dirty_nobuffers(page);
> > }
> >
> > +static int ext3_error_remove_page(struct address_space *mapping,
> > + struct page *page)
> > +{
> > + struct inode *inode = mapping->host;
> > + struct buffer_head *bh, *head;
> > + ext3_fsblk_t block = 0;
> > +
> > + if (!PageDirty(page) || !page_has_buffers(page))
> > + goto remove_page;
> > +
> > + /* Lost data. Handle as critical fs error. */
> > + bh = head = page_buffers(page);
> > + do {
> > + if (buffer_dirty(bh)) {
> For ext3, you should check that buffer_mapped() is set because we can
> have dirty and unmapped buffers. Otherwise the patch looks OK.

OK, I'll add it.

Thanks,
Naoya
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/