diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index 3cada7cc354a..4458a98b78ee 100644 --- a/fs/bcachefs/fs.c +++ b/fs/bcachefs/fs.c @@ -145,8 +145,6 @@ int __must_check bch2_write_inode(struct bch_fs *c, &inode->ei_journal_seq, BTREE_INSERT_NOUNLOCK| BTREE_INSERT_NOFAIL); - if (ret == -EINTR) - goto retry; /* * the btree node lock protects inode->ei_inode, not ei_update_lock; @@ -155,6 +153,11 @@ int __must_check bch2_write_inode(struct bch_fs *c, if (!ret) bch2_inode_update_after_write(c, inode, &inode_u, fields); + bch2_trans_iter_put(&trans, iter); + + if (ret == -EINTR) + goto retry; + bch2_trans_exit(&trans); return ret < 0 ? ret : 0; }