diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c index 2c46bd1c90d3424586ce4174e16de65bd4b3ee1d..289e5e6a6c562e5d22012df72da3740dcc39ecb0 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -8018,9 +8018,12 @@ static int ensure_commit_roots_uptodate(struct send_ctx *sctx) * an unnecessary update of the root's item in the root tree when * committing the transaction if that root wasn't changed before. */ - trans = btrfs_join_transaction(root); - if (IS_ERR(trans)) - return PTR_ERR(trans); + trans = btrfs_attach_transaction_barrier(root); + if (IS_ERR(trans)) { + int ret = PTR_ERR(trans); + + return (ret == -ENOENT) ? 0 : ret; + } return btrfs_commit_transaction(trans); }