summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/tree-log.h
diff options
context:
space:
mode:
authorJosef Bacik <josef@toxicpanda.com>2022-06-13 15:09:48 -0400
committerDavid Sterba <dsterba@suse.com>2022-07-25 17:45:34 +0200
commitf31f09f6be1c6c1a673e0566e258281a7bbaaa51 (patch)
tree6b85adc65b4be2c3a4fed86d22d178a3df53637c /fs/btrfs/tree-log.h
parent5bea2508811ec76105b01c90c1f1661024c257a9 (diff)
downloadlinux-f31f09f6be1c6c1a673e0566e258281a7bbaaa51.tar.gz
linux-f31f09f6be1c6c1a673e0566e258281a7bbaaa51.tar.bz2
linux-f31f09f6be1c6c1a673e0566e258281a7bbaaa51.zip
btrfs: tree-log: make the return value for log syncing consistent
Currently we will return 1 or -EAGAIN if we decide we need to commit the transaction rather than sync the log. In practice this doesn't really matter, we interpret any !0 and !BTRFS_NO_LOG_SYNC as needing to commit the transaction. However this makes it hard to figure out what the correct thing to do is. Fix this up by defining BTRFS_LOG_FORCE_COMMIT and using this in all the places where we want to force the transaction to be committed. CC: stable@vger.kernel.org # 5.15+ Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/tree-log.h')
-rw-r--r--fs/btrfs/tree-log.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/tree-log.h b/fs/btrfs/tree-log.h
index 1620f8170629..57ab5f3b8dc7 100644
--- a/fs/btrfs/tree-log.h
+++ b/fs/btrfs/tree-log.h
@@ -12,6 +12,9 @@
/* 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)
+
struct btrfs_log_ctx {
int log_ret;
int log_transid;