diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/extent_io.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index ad75a9cc3604..69ea09659d47 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -1205,7 +1205,8 @@ static noinline int lock_delalloc_pages(struct inode *inode, | |||
1205 | */ | 1205 | */ |
1206 | if (pages[i] != locked_page) { | 1206 | if (pages[i] != locked_page) { |
1207 | lock_page(pages[i]); | 1207 | lock_page(pages[i]); |
1208 | if (pages[i]->mapping != inode->i_mapping) { | 1208 | if (!PageDirty(pages[i]) || |
1209 | pages[i]->mapping != inode->i_mapping) { | ||
1209 | ret = -EAGAIN; | 1210 | ret = -EAGAIN; |
1210 | unlock_page(pages[i]); | 1211 | unlock_page(pages[i]); |
1211 | page_cache_release(pages[i]); | 1212 | page_cache_release(pages[i]); |