129 lines
4.1 KiB
Diff
129 lines
4.1 KiB
Diff
From ee3912c8c293b09acc90ba6ad7443ceacc33ef79 Mon Sep 17 00:00:00 2001
|
|
From: Alexander Miroshnichenko <alex@millerson.name>
|
|
Date: Wed, 14 May 2025 16:48:38 +0300
|
|
Subject: [PATCH] bcachefs: revert 6.14 backport fixes
|
|
Content-Type: text/plain; charset="utf-8"
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
|
|
---
|
|
fs/bcachefs/btree_update_interior.c | 17 +----------------
|
|
fs/bcachefs/error.c | 8 --------
|
|
fs/bcachefs/error.h | 2 --
|
|
fs/bcachefs/fs-ioctl.c | 6 ++----
|
|
fs/bcachefs/xattr_format.h | 8 +-------
|
|
5 files changed, 4 insertions(+), 37 deletions(-)
|
|
|
|
diff --git a/fs/bcachefs/btree_update_interior.c b/fs/bcachefs/btree_update_interior.c
|
|
index e9be8b5571a4..e4e7c804625e 100644
|
|
--- a/fs/bcachefs/btree_update_interior.c
|
|
+++ b/fs/bcachefs/btree_update_interior.c
|
|
@@ -35,8 +35,6 @@ static const char * const bch2_btree_update_modes[] = {
|
|
NULL
|
|
};
|
|
|
|
-static void bch2_btree_update_to_text(struct printbuf *, struct btree_update *);
|
|
-
|
|
static int bch2_btree_insert_node(struct btree_update *, struct btree_trans *,
|
|
btree_path_idx_t, struct btree *, struct keylist *);
|
|
static void bch2_btree_update_add_new_node(struct btree_update *, struct btree *);
|
|
@@ -1784,24 +1782,11 @@ static int bch2_btree_insert_node(struct btree_update *as, struct btree_trans *t
|
|
int ret;
|
|
|
|
lockdep_assert_held(&c->gc_lock);
|
|
+ BUG_ON(!btree_node_intent_locked(path, b->c.level));
|
|
BUG_ON(!b->c.level);
|
|
BUG_ON(!as || as->b);
|
|
bch2_verify_keylist_sorted(keys);
|
|
|
|
- if (!btree_node_intent_locked(path, b->c.level)) {
|
|
- struct printbuf buf = PRINTBUF;
|
|
- bch2_log_msg_start(c, &buf);
|
|
- prt_printf(&buf, "%s(): node not locked at level %u\n",
|
|
- __func__, b->c.level);
|
|
- bch2_btree_update_to_text(&buf, as);
|
|
- bch2_btree_path_to_text(&buf, trans, path_idx);
|
|
-
|
|
- bch2_print_string_as_lines(KERN_ERR, buf.buf);
|
|
- printbuf_exit(&buf);
|
|
- bch2_fs_emergency_read_only(c);
|
|
- return -EIO;
|
|
- }
|
|
-
|
|
ret = bch2_btree_node_lock_write(trans, path, &b->c);
|
|
if (ret)
|
|
return ret;
|
|
diff --git a/fs/bcachefs/error.c b/fs/bcachefs/error.c
|
|
index 6cbf4819e923..038da6a61f6b 100644
|
|
--- a/fs/bcachefs/error.c
|
|
+++ b/fs/bcachefs/error.c
|
|
@@ -11,14 +11,6 @@
|
|
|
|
#define FSCK_ERR_RATELIMIT_NR 10
|
|
|
|
-void bch2_log_msg_start(struct bch_fs *c, struct printbuf *out)
|
|
-{
|
|
-#ifdef BCACHEFS_LOG_PREFIX
|
|
- prt_printf(out, bch2_log_msg(c, ""));
|
|
-#endif
|
|
- printbuf_indent_add(out, 2);
|
|
-}
|
|
-
|
|
bool bch2_inconsistent_error(struct bch_fs *c)
|
|
{
|
|
set_bit(BCH_FS_error, &c->flags);
|
|
diff --git a/fs/bcachefs/error.h b/fs/bcachefs/error.h
|
|
index 5730eb6b2f38..7acf2a27ca28 100644
|
|
--- a/fs/bcachefs/error.h
|
|
+++ b/fs/bcachefs/error.h
|
|
@@ -18,8 +18,6 @@ struct work_struct;
|
|
|
|
/* Error messages: */
|
|
|
|
-void bch2_log_msg_start(struct bch_fs *, struct printbuf *);
|
|
-
|
|
/*
|
|
* Inconsistency errors: The on disk data is inconsistent. If these occur during
|
|
* initial recovery, they don't indicate a bug in the running code - we walk all
|
|
diff --git a/fs/bcachefs/fs-ioctl.c b/fs/bcachefs/fs-ioctl.c
|
|
index 4d6193820483..15725b4ce393 100644
|
|
--- a/fs/bcachefs/fs-ioctl.c
|
|
+++ b/fs/bcachefs/fs-ioctl.c
|
|
@@ -515,12 +515,10 @@ static long bch2_ioctl_subvolume_destroy(struct bch_fs *c, struct file *filp,
|
|
ret = -ENOENT;
|
|
goto err;
|
|
}
|
|
-
|
|
- ret = inode_permission(file_mnt_idmap(filp), d_inode(victim), MAY_WRITE) ?:
|
|
- __bch2_unlink(dir, victim, true);
|
|
+ ret = __bch2_unlink(dir, victim, true);
|
|
if (!ret) {
|
|
fsnotify_rmdir(dir, victim);
|
|
- d_invalidate(victim);
|
|
+ d_delete(victim);
|
|
}
|
|
err:
|
|
inode_unlock(dir);
|
|
diff --git a/fs/bcachefs/xattr_format.h b/fs/bcachefs/xattr_format.h
|
|
index 67426e33d04e..c7916011ef34 100644
|
|
--- a/fs/bcachefs/xattr_format.h
|
|
+++ b/fs/bcachefs/xattr_format.h
|
|
@@ -13,13 +13,7 @@ struct bch_xattr {
|
|
__u8 x_type;
|
|
__u8 x_name_len;
|
|
__le16 x_val_len;
|
|
- /*
|
|
- * x_name contains the name and value counted by
|
|
- * x_name_len + x_val_len. The introduction of
|
|
- * __counted_by(x_name_len) caused a false positive
|
|
- * detection of an out of bounds write.
|
|
- */
|
|
- __u8 x_name[];
|
|
+ __u8 x_name[] __counted_by(x_name_len);
|
|
} __packed __aligned(8);
|
|
|
|
#endif /* _BCACHEFS_XATTR_FORMAT_H */
|
|
--
|
|
2.49.0
|
|
|