bcachefs: Use __bch2_trans_do() in a few more places
authorKent Overstreet <kent.overstreet@gmail.com>
Fri, 12 Mar 2021 22:52:42 +0000 (17:52 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:55 +0000 (17:08 -0400)
Minor cleanup, it was being open coded.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fs.c

index 2d5e00a42b3ec04ada363eebbff3548770e3edb9..a168d09ffd372ac6843b325745505e14827370fc 100644 (file)
@@ -416,16 +416,12 @@ static int __bch2_link(struct bch_fs *c,
        mutex_lock(&inode->ei_update_lock);
        bch2_trans_init(&trans, c, 4, 1024);
 
-       do {
-               bch2_trans_begin(&trans);
-               ret   = bch2_link_trans(&trans,
+       ret = __bch2_trans_do(&trans, NULL, &inode->ei_journal_seq,
+                             BTREE_INSERT_NOUNLOCK,
+                       bch2_link_trans(&trans,
                                        dir->v.i_ino,
                                        inode->v.i_ino, &dir_u, &inode_u,
-                                       &dentry->d_name) ?:
-                       bch2_trans_commit(&trans, NULL,
-                                       &inode->ei_journal_seq,
-                                       BTREE_INSERT_NOUNLOCK);
-       } while (ret == -EINTR);
+                                       &dentry->d_name));
 
        if (likely(!ret)) {
                BUG_ON(inode_u.bi_inum != inode->v.i_ino);
@@ -472,17 +468,12 @@ static int bch2_unlink(struct inode *vdir, struct dentry *dentry)
        bch2_lock_inodes(INODE_UPDATE_LOCK, dir, inode);
        bch2_trans_init(&trans, c, 4, 1024);
 
-       do {
-               bch2_trans_begin(&trans);
-
-               ret   = bch2_unlink_trans(&trans,
+       ret = __bch2_trans_do(&trans, NULL, &dir->ei_journal_seq,
+                             BTREE_INSERT_NOUNLOCK|
+                             BTREE_INSERT_NOFAIL,
+                       bch2_unlink_trans(&trans,
                                          dir->v.i_ino, &dir_u,
-                                         &inode_u, &dentry->d_name) ?:
-                       bch2_trans_commit(&trans, NULL,
-                                         &dir->ei_journal_seq,
-                                         BTREE_INSERT_NOUNLOCK|
-                                         BTREE_INSERT_NOFAIL);
-       } while (ret == -EINTR);
+                                         &inode_u, &dentry->d_name));
 
        if (likely(!ret)) {
                BUG_ON(inode_u.bi_inum != inode->v.i_ino);
@@ -599,21 +590,16 @@ static int bch2_rename2(struct mnt_idmap *idmap,
                        goto err;
        }
 
-retry:
-       bch2_trans_begin(&trans);
-       ret   = bch2_rename_trans(&trans,
-                                 src_dir->v.i_ino, &src_dir_u,
-                                 dst_dir->v.i_ino, &dst_dir_u,
-                                 &src_inode_u,
-                                 &dst_inode_u,
-                                 &src_dentry->d_name,
-                                 &dst_dentry->d_name,
-                                 mode) ?:
-               bch2_trans_commit(&trans, NULL,
-                                 &journal_seq,
-                                 BTREE_INSERT_NOUNLOCK);
-       if (ret == -EINTR)
-               goto retry;
+       ret = __bch2_trans_do(&trans, NULL, &journal_seq,
+                             BTREE_INSERT_NOUNLOCK,
+                       bch2_rename_trans(&trans,
+                                         src_dir->v.i_ino, &src_dir_u,
+                                         dst_dir->v.i_ino, &dst_dir_u,
+                                         &src_inode_u,
+                                         &dst_inode_u,
+                                         &src_dentry->d_name,
+                                         &dst_dentry->d_name,
+                                         mode));
        if (unlikely(ret))
                goto err;