summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extent-tree.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/extent-tree.c b/extent-tree.c
index 8c395379..f3c36e10 100644
--- a/extent-tree.c
+++ b/extent-tree.c
@@ -1262,7 +1262,9 @@ static int pin_down_bytes(struct btrfs_root *root, u64 bytenr, u32 num_bytes,
if (btrfs_buffer_uptodate(buf)) {
u64 transid =
root->fs_info->running_transaction->transid;
- if (btrfs_header_generation(buf) == transid) {
+ if (btrfs_header_generation(buf) ==
+ transid && !btrfs_header_flag(buf,
+ BTRFS_HEADER_FLAG_WRITTEN)) {
free_extent_buffer(buf);
return 1;
}