summaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2011-11-15 09:31:24 -0500
committerChris Mason <chris.mason@oracle.com>2011-11-20 07:42:17 -0500
commitf7d61dcd6873c49bcc42be2caa2af1c2511aa915 (patch)
tree9619519c2eac1dd207bf822f348575cf9f98ba47 /fs/btrfs
parent291c7d2f577428f896daa5002e784959328a80aa (diff)
downloadlinux-stable-f7d61dcd6873c49bcc42be2caa2af1c2511aa915.tar.gz
linux-stable-f7d61dcd6873c49bcc42be2caa2af1c2511aa915.tar.bz2
linux-stable-f7d61dcd6873c49bcc42be2caa2af1c2511aa915.zip
Btrfs: clear pages dirty for io and set them extent mapped
When doing the io_ctl helpers to clean up the free space cache stuff I stopped using our normal prepare_pages stuff, which means I of course forgot to do things like set the pages extent mapped, which will cause us all sorts of wonderful propblems. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/free-space-cache.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index 8c32434da2cb..aedacdbf77e2 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -351,6 +351,11 @@ static int io_ctl_prepare_pages(struct io_ctl *io_ctl, struct inode *inode,
}
}
+ for (i = 0; i < io_ctl->num_pages; i++) {
+ clear_page_dirty_for_io(io_ctl->pages[i]);
+ set_page_extent_mapped(io_ctl->pages[i]);
+ }
+
return 0;
}