btrfs: use a negative value for BTRFS_LOG_FORCE_COMMIT
Currently we use the value 1 for BTRFS_LOG_FORCE_COMMIT, but that value has a few inconveniences: 1) If it's ever used by btrfs_log_inode(), or any function down the call chain, we have to remember to btrfs_set_log_full_commit(), which is repetitive and has a chance to be forgotten in future use cases. btrfs_log_inode_parent() only calls btrfs_set_log_full_commit() when it gets a negative value from btrfs_log_inode(); 2) Down the call chain of btrfs_log_inode(), we may have functions that need to force a log commit, but can return either an error (negative value), false (0) or true (1). So they are forced to return some random negative to force a log commit - using BTRFS_LOG_FORCE_COMMIT would make the intention more clear. Currently the only example is flush_dir_items_batch(). So turn BTRFS_LOG_FORCE_COMMIT into a negative value. The chosen value is -(MAX_ERRNO + 1), so that it does not overlap any errno value and makes it easier to debug. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
committed by
David Sterba
parent
ce394a7f39
commit
5cce1780dc
@ -13,8 +13,13 @@
|
||||
/* return value for btrfs_log_dentry_safe that means we don't need to log it at all */
|
||||
#define BTRFS_NO_LOG_SYNC 256
|
||||
|
||||
/* We can't use the tree log for whatever reason, force a transaction commit */
|
||||
#define BTRFS_LOG_FORCE_COMMIT (1)
|
||||
/*
|
||||
* We can't use the tree log for whatever reason, force a transaction commit.
|
||||
* We use a negative value because there are functions through the logging code
|
||||
* that need to return an error (< 0 value), false (0) or true (1). Any negative
|
||||
* value will do, as it will cause the log to be marked for a full sync.
|
||||
*/
|
||||
#define BTRFS_LOG_FORCE_COMMIT (-(MAX_ERRNO + 1))
|
||||
|
||||
struct btrfs_log_ctx {
|
||||
int log_ret;
|
||||
|
Reference in New Issue
Block a user