diff options
author | 2011-11-15 09:31:24 -0500 | |
---|---|---|
committer | 2011-11-20 07:42:17 -0500 | |
commit | f7d61dcd6873c49bcc42be2caa2af1c2511aa915 (patch) | |
tree | 9619519c2eac1dd207bf822f348575cf9f98ba47 | |
parent | Btrfs: wait on caching if we're loading the free space cache (diff) | |
download | linux-f7d61dcd6873c49bcc42be2caa2af1c2511aa915.tar.gz linux-f7d61dcd6873c49bcc42be2caa2af1c2511aa915.tar.bz2 linux-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>
-rw-r--r-- | fs/btrfs/free-space-cache.c | 5 |
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; } |