fs/buffer.c: call __block_write_begin() if we have page
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> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
a3314a0ed3
commit
309f77ad9b
|
@ -2458,11 +2458,10 @@ int nobh_write_begin(struct address_space *mapping,
|
||||||
*fsdata = NULL;
|
*fsdata = NULL;
|
||||||
|
|
||||||
if (page_has_buffers(page)) {
|
if (page_has_buffers(page)) {
|
||||||
unlock_page(page);
|
ret = __block_write_begin(page, pos, len, get_block);
|
||||||
page_cache_release(page);
|
if (unlikely(ret))
|
||||||
*pagep = NULL;
|
goto out_release;
|
||||||
return block_write_begin(mapping, pos, len, flags, pagep,
|
return ret;
|
||||||
get_block);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PageMappedToDisk(page))
|
if (PageMappedToDisk(page))
|
||||||
|
|
Loading…
Reference in New Issue