|
@@ -2136,6 +2136,7 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
|
|
int compressed;
|
|
int compressed;
|
|
int write_flags;
|
|
int write_flags;
|
|
unsigned long nr_written = 0;
|
|
unsigned long nr_written = 0;
|
|
|
|
+ bool fill_delalloc = true;
|
|
|
|
|
|
if (wbc->sync_mode == WB_SYNC_ALL)
|
|
if (wbc->sync_mode == WB_SYNC_ALL)
|
|
write_flags = WRITE_SYNC;
|
|
write_flags = WRITE_SYNC;
|
|
@@ -2166,10 +2167,13 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
|
|
|
|
|
|
set_page_extent_mapped(page);
|
|
set_page_extent_mapped(page);
|
|
|
|
|
|
|
|
+ if (!tree->ops || !tree->ops->fill_delalloc)
|
|
|
|
+ fill_delalloc = false;
|
|
|
|
+
|
|
delalloc_start = start;
|
|
delalloc_start = start;
|
|
delalloc_end = 0;
|
|
delalloc_end = 0;
|
|
page_started = 0;
|
|
page_started = 0;
|
|
- if (!epd->extent_locked) {
|
|
|
|
|
|
+ if (!epd->extent_locked && fill_delalloc) {
|
|
u64 delalloc_to_write = 0;
|
|
u64 delalloc_to_write = 0;
|
|
/*
|
|
/*
|
|
* make sure the wbc mapping index is at least updated
|
|
* make sure the wbc mapping index is at least updated
|