Messages in this thread Patch in this message | | | From | Namhyung Kim <> | Subject | [PATCH RESEND] fs/buffer.c: call __block_write_begin() if we have page | Date | Mon, 25 Oct 2010 15:01:12 +0900 |
| |
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@gmail.com> --- Shared error path.
fs/buffer.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/fs/buffer.c b/fs/buffer.c index 7f0b9b0..a132c2b 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2466,11 +2466,10 @@ 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)) + goto out_release; + return ret; } if (PageMappedToDisk(page)) -- 1.7.0.4
| |