]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/fs.c
Update bcachefs sources to b964c6cba8 bcachefs: Change lockrestart_do() to always...
[bcachefs-tools-debian] / libbcachefs / fs.c
index bc7cea0d8cebd6a7200e53023df98d2ebf76056c..631fb87b81c9ca9866eaab3413fbe916a6fd4e5a 100644 (file)
@@ -156,7 +156,6 @@ retry:
                bch2_inode_write(&trans, iter, &inode_u) ?:
                bch2_trans_commit(&trans, NULL,
                                  &inode->ei_journal_seq,
-                                 BTREE_INSERT_NOUNLOCK|
                                  BTREE_INSERT_NOFAIL);
 
        /*
@@ -294,8 +293,7 @@ retry:
        if (unlikely(ret))
                goto err_before_quota;
 
-       ret   = bch2_trans_commit(&trans, NULL, &journal_seq,
-                                 BTREE_INSERT_NOUNLOCK);
+       ret   = bch2_trans_commit(&trans, NULL, &journal_seq, 0);
        if (unlikely(ret)) {
                bch2_quota_acct(c, bch_qid(&inode_u), Q_INO, -1,
                                KEY_TYPE_QUOTA_WARN);
@@ -416,8 +414,7 @@ static int __bch2_link(struct bch_fs *c,
        mutex_lock(&inode->ei_update_lock);
        bch2_trans_init(&trans, c, 4, 1024);
 
-       ret = __bch2_trans_do(&trans, NULL, &inode->ei_journal_seq,
-                             BTREE_INSERT_NOUNLOCK,
+       ret = __bch2_trans_do(&trans, NULL, &inode->ei_journal_seq, 0,
                        bch2_link_trans(&trans,
                                        dir->v.i_ino,
                                        inode->v.i_ino, &dir_u, &inode_u,
@@ -469,7 +466,6 @@ static int bch2_unlink(struct inode *vdir, struct dentry *dentry)
        bch2_trans_init(&trans, c, 4, 1024);
 
        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,
@@ -590,8 +586,7 @@ static int bch2_rename2(struct user_namespace *mnt_userns,
                        goto err;
        }
 
-       ret = __bch2_trans_do(&trans, NULL, &journal_seq,
-                             BTREE_INSERT_NOUNLOCK,
+       ret = __bch2_trans_do(&trans, NULL, &journal_seq, 0,
                        bch2_rename_trans(&trans,
                                          src_dir->v.i_ino, &src_dir_u,
                                          dst_dir->v.i_ino, &dst_dir_u,
@@ -734,7 +729,6 @@ retry:
        ret =   bch2_inode_write(&trans, inode_iter, &inode_u) ?:
                bch2_trans_commit(&trans, NULL,
                                  &inode->ei_journal_seq,
-                                 BTREE_INSERT_NOUNLOCK|
                                  BTREE_INSERT_NOFAIL);
 btree_err:
        bch2_trans_iter_put(&trans, inode_iter);
@@ -909,6 +903,8 @@ static int bch2_fiemap(struct inode *vinode, struct fiemap_extent_info *info,
        iter = bch2_trans_get_iter(&trans, BTREE_ID_extents,
                                   POS(ei->v.i_ino, start >> 9), 0);
 retry:
+       bch2_trans_begin(&trans);
+
        while ((k = bch2_btree_iter_peek(iter)).k &&
               !(ret = bkey_err(k)) &&
               bkey_cmp(iter->pos, end) < 0) {