summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/qgroup.h
diff options
context:
space:
mode:
authorQu Wenruo <quwenruo@cn.fujitsu.com>2015-09-29 10:35:16 +0800
committerChris Mason <clm@fb.com>2015-10-21 18:41:07 -0700
commitb9d0b38928e21560550bd3c1a278d6e004d3bde6 (patch)
tree77fbb0603be74eb80066bee2c941c7904487b812 /fs/btrfs/qgroup.h
parent94ed938aba557aa798acf496f09afb289b619fcd (diff)
downloadlinux-stable-b9d0b38928e21560550bd3c1a278d6e004d3bde6.tar.gz
linux-stable-b9d0b38928e21560550bd3c1a278d6e004d3bde6.tar.bz2
linux-stable-b9d0b38928e21560550bd3c1a278d6e004d3bde6.zip
btrfs: Add handler for invalidate page
For btrfs_invalidatepage() and its variant evict_inode_truncate_page(), there will be pages don't reach disk. In that case, their reserved space won't be release nor freed by finish_ordered_io() nor delayed_ref handler. So we must free their qgroup reserved space, or we will leaking reserved space again. So this will patch will call btrfs_qgroup_free_data() for invalidatepage() and its variant evict_inode_truncate_page(). And due to the nature of new btrfs_qgroup_reserve/free_data() reserved space will only be reserved or freed once, so for pages which are already flushed to disk, their reserved space will be released and freed by delayed_ref handler. Double free won't be a problem. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/qgroup.h')
0 files changed, 0 insertions, 0 deletions