btrfs: add comments for btrfs_reserve_flush_enum
This enum is the interface exposed to developers. Although we have a detailed comment explaining the whole idea of space flushing at the beginning of space-info.c, the exposed enum interface doesn't have any comment. Some corner cases, like BTRFS_RESERVE_FLUSH_ALL and BTRFS_RESERVE_FLUSH_ALL_STEAL can be interrupted by fatal signals, are not explained at all. So add some simple comments for these enums as a quick reference. Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
44d354abf3
commit
fd7fb634d6
|
@ -2560,16 +2560,46 @@ int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans,
|
||||||
int btrfs_extent_readonly(struct btrfs_fs_info *fs_info, u64 bytenr);
|
int btrfs_extent_readonly(struct btrfs_fs_info *fs_info, u64 bytenr);
|
||||||
void btrfs_clear_space_info_full(struct btrfs_fs_info *info);
|
void btrfs_clear_space_info_full(struct btrfs_fs_info *info);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Different levels for to flush space when doing space reservations.
|
||||||
|
*
|
||||||
|
* The higher the level, the more methods we try to reclaim space.
|
||||||
|
*/
|
||||||
enum btrfs_reserve_flush_enum {
|
enum btrfs_reserve_flush_enum {
|
||||||
/* If we are in the transaction, we can't flush anything.*/
|
/* If we are in the transaction, we can't flush anything.*/
|
||||||
BTRFS_RESERVE_NO_FLUSH,
|
BTRFS_RESERVE_NO_FLUSH,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Flushing delalloc may cause deadlock somewhere, in this
|
* Flush space by:
|
||||||
* case, use FLUSH LIMIT
|
* - Running delayed inode items
|
||||||
|
* - Allocating a new chunk
|
||||||
*/
|
*/
|
||||||
BTRFS_RESERVE_FLUSH_LIMIT,
|
BTRFS_RESERVE_FLUSH_LIMIT,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flush space by:
|
||||||
|
* - Running delayed inode items
|
||||||
|
* - Running delayed refs
|
||||||
|
* - Running delalloc and waiting for ordered extents
|
||||||
|
* - Allocating a new chunk
|
||||||
|
*/
|
||||||
BTRFS_RESERVE_FLUSH_EVICT,
|
BTRFS_RESERVE_FLUSH_EVICT,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flush space by above mentioned methods and by:
|
||||||
|
* - Running delayed iputs
|
||||||
|
* - Commiting transaction
|
||||||
|
*
|
||||||
|
* Can be interruped by fatal signal.
|
||||||
|
*/
|
||||||
BTRFS_RESERVE_FLUSH_ALL,
|
BTRFS_RESERVE_FLUSH_ALL,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Pretty much the same as FLUSH_ALL, but can also steal space from
|
||||||
|
* global rsv.
|
||||||
|
*
|
||||||
|
* Can be interruped by fatal signal.
|
||||||
|
*/
|
||||||
BTRFS_RESERVE_FLUSH_ALL_STEAL,
|
BTRFS_RESERVE_FLUSH_ALL_STEAL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue