|
@@ -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);
|
|
|
|
- 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))
|
|
if (PageMappedToDisk(page))
|