diff options
author | Wang Shilong <wangsl.fnst@cn.fujitsu.com> | 2014-07-03 18:22:07 +0800 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-09-17 13:37:26 -0700 |
commit | 47059d930f0e002ff851beea87d738146804726d (patch) | |
tree | 5f32e2b5a7630cfd53c24fa9cad873c86368cff8 /fs/btrfs/btrfs_inode.h | |
parent | 48fcc3ff7dce0138c053833adf81670494f177f3 (diff) | |
download | linux-stable-47059d930f0e002ff851beea87d738146804726d.tar.gz linux-stable-47059d930f0e002ff851beea87d738146804726d.tar.bz2 linux-stable-47059d930f0e002ff851beea87d738146804726d.zip |
Btrfs: make defragment work with nodatacow option
Btrfs defragment will utilize COW feature, which means this
did not work for nodatacow option, this problem was detected
by xfstests generic/018 with nodatacow mount option.
Fix this problem by forcing cow for a extent with state
@EXTETN_DEFRAG setting.
Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/btrfs_inode.h')
-rw-r--r-- | fs/btrfs/btrfs_inode.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h index 43527fd78825..fd879418fd42 100644 --- a/fs/btrfs/btrfs_inode.h +++ b/fs/btrfs/btrfs_inode.h @@ -121,6 +121,12 @@ struct btrfs_inode { u64 delalloc_bytes; /* + * total number of bytes pending defrag, used by stat to check whether + * it needs COW. + */ + u64 defrag_bytes; + + /* * the size of the file stored in the metadata on disk. data=ordered * means the in-memory i_size might be larger than the size on disk * because not all the blocks are written yet. |