forked from luck/tmp_suning_uos_patched
Btrfs: Make sure pages are dirty before doing delalloc for them
This adds a PageDirty check to the writeback path that locks pages for delalloc. If a page wasn't dirty at this point, it is in the process of being truncated away. Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
5b7c3fcc46
commit
f2b1c41cf9
|
@ -1205,7 +1205,8 @@ static noinline int lock_delalloc_pages(struct inode *inode,
|
||||||
*/
|
*/
|
||||||
if (pages[i] != locked_page) {
|
if (pages[i] != locked_page) {
|
||||||
lock_page(pages[i]);
|
lock_page(pages[i]);
|
||||||
if (pages[i]->mapping != inode->i_mapping) {
|
if (!PageDirty(pages[i]) ||
|
||||||
|
pages[i]->mapping != inode->i_mapping) {
|
||||||
ret = -EAGAIN;
|
ret = -EAGAIN;
|
||||||
unlock_page(pages[i]);
|
unlock_page(pages[i]);
|
||||||
page_cache_release(pages[i]);
|
page_cache_release(pages[i]);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user