2010-10-25 (ì), 16:11 -0700, Andrew Morton: > On Sun, 24 Oct 2010 01:11:54 +0900 > Namhyung Kim <namhyung@xxxxxxxxx> wrote: > > > If we have the appropriate page already, call __block_write_begin() > > directly instead of releasing and regrabbing it inside of > > block_write_begin(). > > > > Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx> > > --- > > Fix error path. > > > > fs/buffer.c | 12 +++++++----- > > 1 files changed, 7 insertions(+), 5 deletions(-) > > > > diff --git a/fs/buffer.c b/fs/buffer.c > > index 7f0b9b0..f5755f7 100644 > > --- a/fs/buffer.c > > +++ b/fs/buffer.c > > @@ -2466,11 +2466,13 @@ int nobh_write_begin(struct address_space *mapping, > > *fsdata = NULL; > > > > if (page_has_buffers(page)) { > > - unlock_page(page); > > - page_cache_release(page); > > - *pagep = NULL; > > - return block_write_begin(mapping, pos, len, flags, pagep, > > - get_block); > > + ret = __block_write_begin(page, pos, len, get_block); > > + if (unlikely(ret)) { > > + unlock_page(page); > > + page_cache_release(page); > > + *pagep = NULL; > > + } > > + return ret; > > } > > > > if (PageMappedToDisk(page)) > > It looks OK. Was it tested? (ext2 mounted with -o nobh) I just did tar && untar with current kernel source several times on UML. It worked find for me. Thanks. -- Regards, Namhyung Kim -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html