Btrfs: create special free space cache inode
authorJosef Bacik <josef@redhat.com>
Mon, 21 Jun 2010 18:48:16 +0000 (14:48 -0400)
committerJosef Bacik <josef@redhat.com>
Thu, 28 Oct 2010 19:59:09 +0000 (15:59 -0400)
commit0af3d00bad38d3bb9912a60928ad0669f17bdb76
treeabbf4c773138a33dcde483ac60f016c4b5e55dcc
parentf6f94e2ab1b33f0082ac22d71f66385a60d8157f
Btrfs: create special free space cache inode

In order to save free space cache, we need an inode to hold the data, and we
need a special item to point at the right inode for the right block group.  So
first, create a special item that will point to the right inode, and the number
of extent entries we will have and the number of bitmaps we will have.  We
truncate and pre-allocate space everytime to make sure it's uptodate.

This feature will be turned on as soon as you mount with -o space_cache, however
it is safe to boot into old kernels, they will just generate the cache the old
fashion way.  When you boot back into a newer kernel we will notice that we
modified and not the cache and automatically discard the cache.

Signed-off-by: Josef Bacik <josef@redhat.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/extent-tree.c
fs/btrfs/free-space-cache.c
fs/btrfs/free-space-cache.h
fs/btrfs/inode.c
fs/btrfs/relocation.c
fs/btrfs/super.c
fs/btrfs/transaction.c
fs/btrfs/transaction.h