diff options
| author | 2007-10-15 16:15:53 -0400 | |
|---|---|---|
| committer | 2008-09-25 11:03:56 -0400 | |
| commit | db94535db75e67fab12ccbb7f5ee548e33fed891 (patch) | |
| tree | 1ad7dfc82b003294a94ee87d7329b24b902b369f /fs/btrfs/super.c | |
| parent | Btrfs: Change the remaining radix trees used by extent-tree.c to extent_map trees (diff) | |
| download | wireguard-linux-db94535db75e67fab12ccbb7f5ee548e33fed891.tar.xz wireguard-linux-db94535db75e67fab12ccbb7f5ee548e33fed891.zip | |
Btrfs: Allow tree blocks larger than the page size
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/super.c')
| -rw-r--r-- | fs/btrfs/super.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 39a1435c68f1..5c4370f3a5b8 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -303,10 +303,12 @@ static int btrfs_statfs(struct dentry *dentry, struct kstatfs *buf) { struct btrfs_root *root = btrfs_sb(dentry->d_sb); struct btrfs_super_block *disk_super = &root->fs_info->super_copy; + int bits = dentry->d_sb->s_blocksize_bits; buf->f_namelen = BTRFS_NAME_LEN; - buf->f_blocks = btrfs_super_total_blocks(disk_super); - buf->f_bfree = buf->f_blocks - btrfs_super_blocks_used(disk_super); + buf->f_blocks = btrfs_super_total_bytes(disk_super) >> bits; + buf->f_bfree = buf->f_blocks - + (btrfs_super_bytes_used(disk_super) >> bits); buf->f_bavail = buf->f_bfree; buf->f_bsize = dentry->d_sb->s_blocksize; buf->f_type = BTRFS_SUPER_MAGIC; |
