summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-12-22 23:39:28 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2021-04-27 12:17:59 -0400
commit7ff200830b93e505119cb2fb24014d9d0cc31d9a (patch)
tree4efb723224446fcaa80217efa2837d950c54af63 /fs
parentd9a077051300b5a44f1cef5bce4e6ff5fda74913 (diff)
bcachefs: Kill BTREE_INSERT_ATOMIC
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/bcachefs/acl.c1
-rw-r--r--fs/bcachefs/alloc_background.c2
-rw-r--r--fs/bcachefs/btree_update.h10
-rw-r--r--fs/bcachefs/btree_update_leaf.c19
-rw-r--r--fs/bcachefs/ec.c3
-rw-r--r--fs/bcachefs/fs-io.c1
-rw-r--r--fs/bcachefs/fs.c6
-rw-r--r--fs/bcachefs/fsck.c8
-rw-r--r--fs/bcachefs/inode.c1
-rw-r--r--fs/bcachefs/io.c2
-rw-r--r--fs/bcachefs/migrate.c1
-rw-r--r--fs/bcachefs/move.c1
-rw-r--r--fs/bcachefs/recovery.c4
-rw-r--r--fs/bcachefs/reflink.c3
-rw-r--r--fs/bcachefs/xattr.c3
15 files changed, 6 insertions, 59 deletions
diff --git a/fs/bcachefs/acl.c b/fs/bcachefs/acl.c
index dcd0dfe87b51..9dbc1d99a763 100644
--- a/fs/bcachefs/acl.c
+++ b/fs/bcachefs/acl.c
@@ -323,7 +323,6 @@ retry:
ret = bch2_inode_write(&trans, inode_iter, &inode_u) ?:
bch2_trans_commit(&trans, NULL,
&inode->ei_journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOUNLOCK);
btree_err:
if (ret == -EINTR)
diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c
index e252a039dc2b..83caa05e6b1f 100644
--- a/fs/bcachefs/alloc_background.c
+++ b/fs/bcachefs/alloc_background.c
@@ -316,7 +316,6 @@ retry:
bch2_trans_update(trans, iter, &a->k_i);
ret = bch2_trans_commit(trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_NOMARK|
flags);
@@ -913,7 +912,6 @@ retry:
*/
ret = bch2_trans_commit(trans, NULL,
invalidating_cached_data ? journal_seq : NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOUNLOCK|
BTREE_INSERT_NOCHECK_RW|
BTREE_INSERT_NOFAIL|
diff --git a/fs/bcachefs/btree_update.h b/fs/bcachefs/btree_update.h
index d72da179f866..aa87477b51e1 100644
--- a/fs/bcachefs/btree_update.h
+++ b/fs/bcachefs/btree_update.h
@@ -16,7 +16,6 @@ void bch2_btree_journal_key(struct btree_trans *, struct btree_iter *,
struct bkey_i *);
enum {
- __BTREE_INSERT_ATOMIC,
__BTREE_INSERT_NOUNLOCK,
__BTREE_INSERT_NOFAIL,
__BTREE_INSERT_NOCHECK_RW,
@@ -36,12 +35,6 @@ enum {
};
/*
- * Don't drop/retake locks before doing btree update, instead return -EINTR if
- * we had to drop locks for any reason
- */
-#define BTREE_INSERT_ATOMIC (1 << __BTREE_INSERT_ATOMIC)
-
-/*
* Don't drop locks _after_ successfully updating btree:
*/
#define BTREE_INSERT_NOUNLOCK (1 << __BTREE_INSERT_NOUNLOCK)
@@ -101,8 +94,7 @@ int __bch2_trans_commit(struct btree_trans *);
* This is main entry point for btree updates.
*
* Return values:
- * -EINTR: locking changed, this function should be called again. Only returned
- * if passed BTREE_INSERT_ATOMIC.
+ * -EINTR: locking changed, this function should be called again.
* -EROFS: filesystem read only
* -EIO: journal or btree node IO error
*/
diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c
index b964c4212091..e81ac3ed0c41 100644
--- a/fs/bcachefs/btree_update_leaf.c
+++ b/fs/bcachefs/btree_update_leaf.c
@@ -298,8 +298,6 @@ static inline void btree_insert_entry_checks(struct btree_trans *trans,
BUG_ON(bkey_cmp(bkey_start_pos(&i->k->k), i->iter->pos));
EBUG_ON((i->iter->flags & BTREE_ITER_IS_EXTENTS) &&
bkey_cmp(i->k->k.p, i->iter->l[0].b->key.k.p) > 0);
- EBUG_ON((i->iter->flags & BTREE_ITER_IS_EXTENTS) &&
- !(trans->flags & BTREE_INSERT_ATOMIC));
BUG_ON(debug_check_bkeys(c) &&
!bkey_deleted(&i->k->k) &&
@@ -641,8 +639,8 @@ int bch2_trans_commit_error(struct btree_trans *trans,
/*
* if the split succeeded without dropping locks the insert will
- * still be atomic (in the BTREE_INSERT_ATOMIC sense, what the
- * caller peeked() and is overwriting won't have changed)
+ * still be atomic (what the caller peeked() and is overwriting
+ * won't have changed)
*/
#if 0
/*
@@ -713,13 +711,6 @@ int bch2_trans_commit_error(struct btree_trans *trans,
return ret2;
}
- /*
- * BTREE_ITER_ATOMIC means we have to return -EINTR if we
- * dropped locks:
- */
- if (!(flags & BTREE_INSERT_ATOMIC))
- return 0;
-
trace_trans_restart_atomic(trans->ip);
}
@@ -756,9 +747,6 @@ int __bch2_trans_commit(struct btree_trans *trans)
if (!trans->nr_updates)
goto out_noupdates;
- /* for the sake of sanity: */
- EBUG_ON(trans->nr_updates > 1 && !(trans->flags & BTREE_INSERT_ATOMIC));
-
if (trans->flags & BTREE_INSERT_GC_LOCK_HELD)
lockdep_assert_held(&trans->c->gc_lock);
@@ -794,8 +782,6 @@ out:
if (likely(!(trans->flags & BTREE_INSERT_NOCHECK_RW)))
percpu_ref_put(&trans->c->writes);
out_noupdates:
- EBUG_ON(!(trans->flags & BTREE_INSERT_ATOMIC) && ret == -EINTR);
-
trans_for_each_iter_all(trans, iter)
iter->flags &= ~BTREE_ITER_KEEP_UNTIL_COMMIT;
@@ -896,7 +882,6 @@ retry:
bch2_trans_update(trans, iter, &delete);
ret = bch2_trans_commit(trans, NULL, journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL);
if (ret)
break;
diff --git a/fs/bcachefs/ec.c b/fs/bcachefs/ec.c
index 8ec2f940aeaf..045a3316b8f5 100644
--- a/fs/bcachefs/ec.c
+++ b/fs/bcachefs/ec.c
@@ -739,7 +739,6 @@ found_slot:
bch2_trans_update(&trans, iter, &stripe->k_i);
ret = bch2_trans_commit(&trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL);
err:
if (ret == -EINTR)
@@ -822,7 +821,6 @@ static int ec_stripe_update_ptrs(struct bch_fs *c,
bch2_trans_update(&trans, iter, sk.k);
ret = bch2_trans_commit(&trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_USE_RESERVE);
if (ret == -EINTR)
@@ -1235,7 +1233,6 @@ static int __bch2_stripe_write_key(struct btree_trans *trans,
bch2_trans_update(trans, iter, &new_key->k_i);
return bch2_trans_commit(trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|flags);
}
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c
index 59c9f2bc86ac..f6140ec4efb1 100644
--- a/fs/bcachefs/fs-io.c
+++ b/fs/bcachefs/fs-io.c
@@ -2604,7 +2604,6 @@ reassemble:
ret = bch2_trans_commit(&trans, &disk_res,
&inode->ei_journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
commit_flags);
bch2_disk_reservation_put(c, &disk_res);
diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c
index 44f0ecbf6d9c..e1d3be18c45a 100644
--- a/fs/bcachefs/fs.c
+++ b/fs/bcachefs/fs.c
@@ -141,7 +141,6 @@ retry:
bch2_inode_write(&trans, iter, &inode_u) ?:
bch2_trans_commit(&trans, NULL,
&inode->ei_journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOUNLOCK|
BTREE_INSERT_NOFAIL);
if (ret == -EINTR)
@@ -277,7 +276,6 @@ retry:
goto err_before_quota;
ret = bch2_trans_commit(&trans, NULL, &journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOUNLOCK);
if (unlikely(ret)) {
bch2_quota_acct(c, bch_qid(&inode_u), Q_INO, -1,
@@ -405,7 +403,6 @@ static int __bch2_link(struct bch_fs *c,
&dentry->d_name) ?:
bch2_trans_commit(&trans, NULL,
&inode->ei_journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOUNLOCK);
} while (ret == -EINTR);
@@ -462,7 +459,6 @@ static int bch2_unlink(struct inode *vdir, struct dentry *dentry)
&inode_u, &dentry->d_name) ?:
bch2_trans_commit(&trans, NULL,
&dir->ei_journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOUNLOCK|
BTREE_INSERT_NOFAIL);
} while (ret == -EINTR);
@@ -591,7 +587,6 @@ retry:
mode) ?:
bch2_trans_commit(&trans, NULL,
&journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOUNLOCK);
if (ret == -EINTR)
goto retry;
@@ -724,7 +719,6 @@ retry:
ret = bch2_inode_write(&trans, inode_iter, &inode_u) ?:
bch2_trans_commit(&trans, NULL,
&inode->ei_journal_seq,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOUNLOCK|
BTREE_INSERT_NOFAIL);
btree_err:
diff --git a/fs/bcachefs/fsck.c b/fs/bcachefs/fsck.c
index a0fdd2ba92f6..cd230dc10984 100644
--- a/fs/bcachefs/fsck.c
+++ b/fs/bcachefs/fsck.c
@@ -79,7 +79,6 @@ static int remove_dirent(struct btree_trans *trans,
struct bkey_s_c_dirent dirent)
{
return __bch2_trans_do(trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW,
TRANS_RESET_MEM,
@@ -99,7 +98,6 @@ static int reattach_inode(struct bch_fs *c,
name = (struct qstr) QSTR(name_buf);
ret = bch2_trans_do(c, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_LAZY_RW,
bch2_link_trans(&trans, lostfound_inode->bi_inum,
inum, &dir_u, &inode_u, &name));
@@ -199,7 +197,6 @@ static int hash_redo_key(const struct bch_hash_desc desc,
return bch2_hash_set(trans, desc, &h->info, k_iter->pos.inode,
tmp, BCH_HASH_SET_MUST_CREATE) ?:
bch2_trans_commit(trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW);
}
@@ -213,7 +210,6 @@ static int fsck_hash_delete_at(struct btree_trans *trans,
retry:
ret = bch2_hash_delete_at(trans, desc, info, iter) ?:
bch2_trans_commit(trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW);
if (ret == -EINTR) {
@@ -389,7 +385,6 @@ static int check_dirent_hash(struct btree_trans *trans, struct hash_check *h,
if (fsck_err(c, "dirent with junk at end, was %s (%zu) now %s (%u)",
buf, strlen(buf), d->v.d_name, len)) {
ret = __bch2_trans_do(trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW,
TRANS_RESET_MEM,
@@ -663,7 +658,6 @@ retry:
n->v.d_type = mode_to_type(target.bi_mode);
ret = __bch2_trans_do(&trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW,
TRANS_RESET_MEM,
@@ -808,7 +802,6 @@ create_lostfound:
bch2_inode_init_early(c, lostfound_inode);
ret = bch2_trans_do(c, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW,
bch2_create_trans(&trans,
@@ -1280,7 +1273,6 @@ static int check_inode(struct btree_trans *trans,
bch2_inode_pack(&p, &u);
ret = __bch2_trans_do(trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW,
TRANS_RESET_MEM,
diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c
index 439f9dc7f7e0..227cfb572ff2 100644
--- a/fs/bcachefs/inode.c
+++ b/fs/bcachefs/inode.c
@@ -496,7 +496,6 @@ int bch2_inode_rm(struct bch_fs *c, u64 inode_nr)
bch2_trans_update(&trans, iter, &delete.k_i);
ret = bch2_trans_commit(&trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL);
} while (ret == -EINTR);
diff --git a/fs/bcachefs/io.c b/fs/bcachefs/io.c
index 95bd53c558a8..37caed669156 100644
--- a/fs/bcachefs/io.c
+++ b/fs/bcachefs/io.c
@@ -303,7 +303,6 @@ int bch2_extent_update(struct btree_trans *trans,
ret = bch2_trans_commit(trans, disk_res, journal_seq,
BTREE_INSERT_NOCHECK_RW|
BTREE_INSERT_NOFAIL|
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_USE_RESERVE);
if (!ret && i_sectors_delta)
*i_sectors_delta += delta;
@@ -1738,7 +1737,6 @@ retry:
bch2_trans_update(&trans, iter, new.k);
ret = bch2_trans_commit(&trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_NOWAIT);
if (ret == -EINTR)
diff --git a/fs/bcachefs/migrate.c b/fs/bcachefs/migrate.c
index 4b59dcd04cce..db86420bd647 100644
--- a/fs/bcachefs/migrate.c
+++ b/fs/bcachefs/migrate.c
@@ -79,7 +79,6 @@ static int __bch2_dev_usrdata_drop(struct bch_fs *c, unsigned dev_idx, int flags
bch2_trans_update(&trans, iter, sk.k);
ret = bch2_trans_commit(&trans, NULL, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL);
/*
diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c
index fad3cc4d587c..2803056288c3 100644
--- a/fs/bcachefs/move.c
+++ b/fs/bcachefs/move.c
@@ -154,7 +154,6 @@ static int bch2_migrate_index_update(struct bch_write_op *op)
ret = bch2_trans_commit(&trans, &op->res,
op_journal_seq(op),
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_USE_RESERVE|
m->data_opts.btree_insert_flags);
diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c
index a3ee2f474952..44a1dcdb135d 100644
--- a/fs/bcachefs/recovery.c
+++ b/fs/bcachefs/recovery.c
@@ -309,14 +309,12 @@ retry:
0, -((s64) k->k.size),
BCH_BUCKET_MARK_OVERWRITE) ?:
bch2_trans_commit(&trans, &disk_res, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW|
BTREE_INSERT_NOMARK_OVERWRITES|
BTREE_INSERT_NO_CLEAR_REPLICAS);
} else {
ret = bch2_trans_commit(&trans, &disk_res, NULL,
- BTREE_INSERT_ATOMIC|
BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW|
BTREE_INSERT_JOURNAL_REPLAY|
@@ -1009,7 +1007,7 @@ int bch2_fs_initialize(struct bch_fs *c)
bch2_inode_init_early(c, &lostfound_inode);
err = "error creating lost+found";
- ret = bch2_trans_do(c, NULL, NULL, BTREE_INSERT_ATOMIC,
+ ret = bch2_trans_do(c, NULL, NULL, 0,
bch2_create_trans(&trans, BCACHEFS_ROOT_INO,
&root_inode, &lostfound_inode,
&lostfound,
diff --git a/fs/bcachefs/reflink.c b/fs/bcachefs/reflink.c
index a65ada691ba1..5cad39fe031f 100644
--- a/fs/bcachefs/reflink.c
+++ b/fs/bcachefs/reflink.c
@@ -288,8 +288,7 @@ err:
inode_u.bi_size < new_i_size) {
inode_u.bi_size = new_i_size;
ret2 = bch2_inode_write(&trans, inode_iter, &inode_u) ?:
- bch2_trans_commit(&trans, NULL, journal_seq,
- BTREE_INSERT_ATOMIC);
+ bch2_trans_commit(&trans, NULL, journal_seq, 0);
}
} while (ret2 == -EINTR);
diff --git a/fs/bcachefs/xattr.c b/fs/bcachefs/xattr.c
index 680d26bc26c9..725a6f3ef8ce 100644
--- a/fs/bcachefs/xattr.c
+++ b/fs/bcachefs/xattr.c
@@ -327,8 +327,7 @@ static int bch2_xattr_set_handler(const struct xattr_handler *handler,
struct bch_inode_info *inode = to_bch_ei(vinode);
struct bch_fs *c = inode->v.i_sb->s_fs_info;
- return bch2_trans_do(c, NULL, &inode->ei_journal_seq,
- BTREE_INSERT_ATOMIC,
+ return bch2_trans_do(c, NULL, &inode->ei_journal_seq, 0,
bch2_xattr_set(&trans, inode->v.i_ino,
&inode->ei_str_hash,
name, value, size,