summaryrefslogtreecommitdiff
path: root/fs/bcachefs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-11-04 05:33:32 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:16 +0300
commit0e030f5e2014bf9a33e977820cf64fce4258cf1d (patch)
treef9c25cb4a721ce51518a134380ac09bb78a1507a /fs/bcachefs
parent3e52c22255143bb86860abf26ef29a077ac30314 (diff)
downloadlinux-0e030f5e2014bf9a33e977820cf64fce4258cf1d.tar.xz
bcachefs: Kill journal buf bloom filter
This was used for recording which inodes have been modified by in flight journal writes, but was broken and has been superceded. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r--fs/bcachefs/btree_update_leaf.c3
-rw-r--r--fs/bcachefs/fs.c4
-rw-r--r--fs/bcachefs/journal.c51
-rw-r--r--fs/bcachefs/journal.h15
-rw-r--r--fs/bcachefs/journal_types.h2
5 files changed, 0 insertions, 75 deletions
diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c
index b9c93182f2de..4e9f7e3b5a61 100644
--- a/fs/bcachefs/btree_update_leaf.c
+++ b/fs/bcachefs/btree_update_leaf.c
@@ -363,9 +363,6 @@ static inline void do_btree_insert_one(struct btree_trans *trans,
i->level,
i->k);
- bch2_journal_set_has_inode(j, &trans->journal_res,
- i->k->k.p.inode);
-
if (trans->journal_seq)
*trans->journal_seq = trans->journal_res.seq;
}
diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c
index 64627543fe17..12178bd15c34 100644
--- a/fs/bcachefs/fs.c
+++ b/fs/bcachefs/fs.c
@@ -58,8 +58,6 @@ static void journal_seq_copy(struct bch_fs *c,
if (old >= journal_seq)
break;
} while ((v = atomic64_cmpxchg(dst_seq, old, journal_seq)) != old);
-
- bch2_journal_set_has_inum(&c->journal, dst->v.i_ino, journal_seq);
}
static void __pagecache_lock_put(struct pagecache_lock *lock, long i)
@@ -258,8 +256,6 @@ struct inode *bch2_vfs_inode_get(struct bch_fs *c, subvol_inum inum)
bch2_vfs_inode_init(c, inum, inode, &inode_u);
- inode->ei_journal_seq = bch2_inode_journal_seq(&c->journal, inum.inum);
-
unlock_new_inode(&inode->v);
return &inode->v;
diff --git a/fs/bcachefs/journal.c b/fs/bcachefs/journal.c
index f72e3124d351..1abd1ac560e6 100644
--- a/fs/bcachefs/journal.c
+++ b/fs/bcachefs/journal.c
@@ -87,8 +87,6 @@ static void bch2_journal_buf_init(struct journal *j)
buf->must_flush = false;
buf->separate_flush = false;
- memset(buf->has_inode, 0, sizeof(buf->has_inode));
-
memset(buf->data, 0, sizeof(*buf->data));
buf->data->seq = cpu_to_le64(journal_cur_seq(j));
buf->data->u64s = 0;
@@ -334,55 +332,6 @@ static void journal_write_work(struct work_struct *work)
journal_entry_close(j);
}
-/*
- * Given an inode number, if that inode number has data in the journal that
- * hasn't yet been flushed, return the journal sequence number that needs to be
- * flushed:
- */
-u64 bch2_inode_journal_seq(struct journal *j, u64 inode)
-{
- size_t h = hash_64(inode, ilog2(sizeof(j->buf[0].has_inode) * 8));
- union journal_res_state s;
- unsigned i;
- u64 seq;
-
-
- spin_lock(&j->lock);
- seq = journal_cur_seq(j);
- s = READ_ONCE(j->reservations);
- i = s.idx;
-
- while (1) {
- if (test_bit(h, j->buf[i].has_inode))
- goto out;
-
- if (i == s.unwritten_idx)
- break;
-
- i = (i - 1) & JOURNAL_BUF_MASK;
- seq--;
- }
-
- seq = 0;
-out:
- spin_unlock(&j->lock);
-
- return seq;
-}
-
-void bch2_journal_set_has_inum(struct journal *j, u64 inode, u64 seq)
-{
- size_t h = hash_64(inode, ilog2(sizeof(j->buf[0].has_inode) * 8));
- struct journal_buf *buf;
-
- spin_lock(&j->lock);
-
- if ((buf = journal_seq_to_buf(j, seq)))
- set_bit(h, buf->has_inode);
-
- spin_unlock(&j->lock);
-}
-
static int __journal_res_get(struct journal *j, struct journal_res *res,
unsigned flags)
{
diff --git a/fs/bcachefs/journal.h b/fs/bcachefs/journal.h
index 99fd253648bf..2cfb6c7f0d14 100644
--- a/fs/bcachefs/journal.h
+++ b/fs/bcachefs/journal.h
@@ -141,9 +141,6 @@ static inline u64 journal_cur_seq(struct journal *j)
return j->pin.back - 1;
}
-u64 bch2_inode_journal_seq(struct journal *, u64);
-void bch2_journal_set_has_inum(struct journal *, u64, u64);
-
static inline int journal_state_count(union journal_res_state s, int idx)
{
switch (idx) {
@@ -163,18 +160,6 @@ static inline void journal_state_inc(union journal_res_state *s)
s->buf3_count += s->idx == 3;
}
-static inline void bch2_journal_set_has_inode(struct journal *j,
- struct journal_res *res,
- u64 inum)
-{
- struct journal_buf *buf = &j->buf[res->idx];
- unsigned long bit = hash_64(inum, ilog2(sizeof(buf->has_inode) * 8));
-
- /* avoid atomic op if possible */
- if (unlikely(!test_bit(bit, buf->has_inode)))
- set_bit(bit, buf->has_inode);
-}
-
/*
* Amount of space that will be taken up by some keys in the journal (i.e.
* including the jset header)
diff --git a/fs/bcachefs/journal_types.h b/fs/bcachefs/journal_types.h
index 0647a53eb35c..0fc6569ef149 100644
--- a/fs/bcachefs/journal_types.h
+++ b/fs/bcachefs/journal_types.h
@@ -34,8 +34,6 @@ struct journal_buf {
bool noflush; /* write has already been kicked off, and was noflush */
bool must_flush; /* something wants a flush */
bool separate_flush;
- /* bloom filter: */
- unsigned long has_inode[1024 / sizeof(unsigned long)];
};
/*