NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.29k stars 13.54k forks source link

[Tracking Issue] bcachefs in NixOS #269580

Open YellowOnion opened 9 months ago

YellowOnion commented 9 months ago

BCACHEFS

I assume over the next couple of months there's going be massive changes in bcachefs, especially from the tooling side.

After my recent PR, there we're a few regressions, and I would like to try and mitigate that again.

@Madouura @RaitoBezarius @Kloenk @pedrohlc @davidak @chayleaf Add a :+1: reaction to issues you find important.

RaitoBezarius commented 9 months ago

We should also explore the fstab generator for multi-devices in systemd stage 1.

kloenk commented 9 months ago

We should also explore the fstab generator for multi-devices in systemd stage 1.

I guess thats behing systemdStage1? The other option would be to not write to fstab, but generate the systemd mount and device units, as the fstab generator is not able to handle multi device filesystems yet. and we could potentially just generate those units using nix.

RaitoBezarius commented 9 months ago

We should also explore the fstab generator for multi-devices in systemd stage 1.

I guess thats behing systemdStage1? The other option would be to not write to fstab, but generate the systemd mount and device units, as the fstab generator is not able to handle multi device filesystems yet. and we could potentially just generate those units using nix.

Well, it was not clear for me, it was behind systemdStage1, yes we could generate mount units but how do you handle degraded mounting?

YellowOnion commented 9 months ago

bcachefs-tools needs some improvements here too, a command so that we don't race with udev and a degraded timeout maybe.

Krutonium commented 9 months ago

We should also explore the fstab generator for multi-devices in systemd stage 1.

I guess thats behing systemdStage1? The other option would be to not write to fstab, but generate the systemd mount and device units, as the fstab generator is not able to handle multi device filesystems yet. and we could potentially just generate those units using nix.

This explains the issue I had ages back, thank you for the explanation! I would like to request that this be done with priority, since it's kinda one of the big uses for bcachefs imo.

Madouura commented 9 months ago

linux_testing_bcachefs is broken on release-23.11 and master with no clear way to fix either. Unless we find a way to fix the kernel on release-23.11, we honestly may want to backport #268394.

Madouura commented 9 months ago

We also have the option of aliasing linux_testing_bcachefs to linux_testing on release-23.11.

RaitoBezarius commented 8 months ago

linux_testing_bcachefs is broken on release-23.11 and master with no clear way to fix either. Unless we find a way to fix the kernel on release-23.11, we honestly may want to backport #268394.

Cannot reproduce, is there an issue or a link towards the breakage?

Madouura commented 8 months ago

linux_testing_bcachefs is broken on release-23.11 and master with no clear way to fix either. Unless we find a way to fix the kernel on release-23.11, we honestly may want to backport #268394.

Cannot reproduce, is there an issue or a link towards the breakage?

nix build -L --print-out-paths .#linux_testing_bcachefs ```console ❯ nix build -L --print-out-paths .#linux_testing_bcachefs linux-config> Running phase: unpackPhase linux-config> unpacking source archive /nix/store/n9mlm1zz3m4k7b50gk25093jqbdl2xpx-linux-6.5.13.tar.xz linux-config> source root is linux-6.5.13 linux-config> setting SOURCE_DATE_EPOCH to timestamp 1701191719 of file linux-6.5.13/virt/lib/irqbypass.c linux-config> Running phase: patchPhase linux-config> applying patch /nix/store/3p9gg57rcz6f3g3g9n8hrjhwkayh8cr3-bcachefs-4d2faeb4fb58c389dc9f76b8d5ae991ef4497e04.diff linux-config> patching file MAINTAINERS linux-config> patching file arch/powerpc/kernel/firmware.c linux-config> patching file arch/powerpc/mm/book3s64/radix_pgtable.c linux-config> patching file block/bio.c linux-config> Hunk #2 succeeded at 1233 (offset -19 lines). linux-config> Hunk #3 succeeded at 1262 (offset -19 lines). linux-config> Hunk #4 succeeded at 1476 (offset -16 lines). linux-config> Hunk #5 succeeded at 1536 (offset -16 lines). linux-config> patching file block/blk-core.c linux-config> patching file block/blk.h linux-config> Hunk #1 succeeded at 255 (offset 4 lines). linux-config> patching file drivers/accel/ivpu/ivpu_gem.c linux-config> patching file drivers/accel/ivpu/ivpu_gem.h linux-config> patching file drivers/block/virtio_blk.c linux-config> patching file drivers/gpu/drm/gud/gud_drv.c linux-config> patching file drivers/md/bcache/Kconfig linux-config> patching file drivers/md/bcache/Makefile linux-config> patching file drivers/md/bcache/bcache.h linux-config> patching file drivers/md/bcache/closure.c linux-config> patching file drivers/md/bcache/closure.h linux-config> patching file drivers/md/bcache/super.c linux-config> patching file drivers/md/bcache/util.h linux-config> patching file drivers/mmc/core/block.c linux-config> Hunk #1 succeeded at 2521 (offset 11 lines). linux-config> Hunk #2 succeeded at 2717 (offset 11 lines). linux-config> patching file drivers/mtd/spi-nor/debugfs.c linux-config> patching file drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c linux-config> patching file drivers/scsi/sd.c linux-config> Hunk #1 succeeded at 2759 (offset 78 lines). linux-config> patching file fs/Kconfig linux-config> patching file fs/Makefile linux-config> patching file fs/aio.c linux-config> patching file fs/dcache.c linux-config> patching file fs/inode.c linux-config> patching file fs/iomap/buffered-io.c linux-config> Hunk #4 succeeded at 542 (offset -5 lines). linux-config> Hunk #5 succeeded at 1501 (offset -5 lines). linux-config> Hunk #6 succeeded at 1542 (offset -5 lines). linux-config> Hunk #7 succeeded at 1553 (offset -5 lines). linux-config> Hunk #8 succeeded at 1604 (offset -5 lines). linux-config> patching file fs/xfs/xfs_iomap.c linux-config> patching file fs/xfs/xfs_mount.h linux-config> patching file fs/xfs/xfs_super.c linux-config> patching file include/linux/bio.h linux-config> patching file include/linux/blkdev.h linux-config> Hunk #1 succeeded at 847 (offset 1 line). linux-config> patching file include/linux/dcache.h linux-config> patching file include/linux/exportfs.h linux-config> patching file include/linux/fs.h linux-config> Hunk #4 succeeded at 2773 (offset 43 lines). linux-config> Hunk #5 succeeded at 2784 (offset 43 lines). linux-config> patching file include/linux/generic-radix-tree.h linux-config> Reversed (or previously applied) patch detected! Assume -R? [n] linux-config> Apply anyway? [n] linux-config> Skipping patch. linux-config> 5 out of 5 hunks ignored -- saving rejects to file include/linux/generic-radix-tree.h.rej linux-config> patching file include/linux/gfp_types.h linux-config> patching file include/linux/iomap.h linux-config> patching file include/linux/list_bl.h linux-config> patching file include/linux/lockdep.h linux-config> patching file include/linux/lockdep_types.h linux-config> patching file include/linux/nodemask.h linux-config> patching file include/linux/prandom.h linux-config> patching file include/linux/sched.h linux-config> patching file include/linux/seq_buf.h linux-config> patching file include/linux/shrinker.h linux-config> patching file include/linux/string_helpers.h linux-config> patching file init/init_task.c linux-config> patching file kernel/locking/lockdep.c linux-config> Hunk #1 succeeded at 3048 (offset -8 lines). linux-config> Hunk #2 succeeded at 3116 (offset -8 lines). linux-config> Hunk #3 succeeded at 6606 (offset -8 lines). linux-config> Hunk #4 succeeded at 6739 (offset -8 lines). linux-config> patching file kernel/locking/mutex.c linux-config> patching file kernel/locking/osq_lock.c linux-config> patching file kernel/stacktrace.c linux-config> patching file lib/Kconfig linux-config> patching file lib/Kconfig.debug linux-config> patching file lib/Makefile linux-config> patching file lib/errname.c linux-config> patching file lib/generic-radix-tree.c linux-config> Hunk #2 FAILED at 167. linux-config> Hunk #3 FAILED at 185. linux-config> Hunk #4 succeeded at 213 (offset 11 lines). linux-config> 2 out of 4 hunks FAILED -- saving rejects to file lib/generic-radix-tree.c.rej linux-config> patching file lib/iov_iter.c linux-config> patching file lib/math/Kconfig linux-config> patching file lib/math/Makefile linux-config> patching file lib/rhashtable.c linux-config> patching file lib/seq_buf.c linux-config> patching file lib/string_helpers.c linux-config> patching file lib/test-string_helpers.c linux-config> patching file mm/hugetlb.c linux-config> Hunk #1 succeeded at 3302 (offset 32 lines). linux-config> Hunk #2 succeeded at 3364 (offset 32 lines). linux-config> Hunk #3 succeeded at 3410 (offset 32 lines). linux-config> Hunk #4 succeeded at 4301 (offset 32 lines). linux-config> patching file mm/oom_kill.c linux-config> patching file mm/show_mem.c linux-config> patching file mm/slab.h linux-config> patching file mm/slab_common.c linux-config> Hunk #2 succeeded at 1276 (offset 2 lines). linux-config> Hunk #3 succeeded at 1294 (offset 2 lines). linux-config> patching file mm/vmscan.c linux-config> patching file scripts/Kbuild.include linux-config> patching file scripts/Makefile.lib linux-config> patching file scripts/kallsyms.c linux-config> patching file tools/objtool/noreturns.h linux-config> patching file .github/ISSUE_TEMPLATE/bug_report.md linux-config> patching file fs/bcachefs/Kconfig linux-config> patching file fs/bcachefs/Makefile linux-config> patching file fs/bcachefs/acl.c linux-config> patching file fs/bcachefs/acl.h linux-config> patching file fs/bcachefs/alloc_background.c linux-config> patching file fs/bcachefs/alloc_background.h linux-config> patching file fs/bcachefs/alloc_foreground.c linux-config> patching file fs/bcachefs/alloc_foreground.h linux-config> patching file fs/bcachefs/alloc_types.h linux-config> patching file fs/bcachefs/backpointers.c linux-config> patching file fs/bcachefs/backpointers.h linux-config> patching file fs/bcachefs/bbpos.h linux-config> patching file fs/bcachefs/bcachefs.h linux-config> patching file fs/bcachefs/bcachefs_format.h linux-config> patching file fs/bcachefs/bcachefs_ioctl.h linux-config> patching file fs/bcachefs/bkey.c linux-config> patching file fs/bcachefs/bkey.h linux-config> patching file fs/bcachefs/bkey_buf.h linux-config> patching file fs/bcachefs/bkey_cmp.h linux-config> patching file fs/bcachefs/bkey_methods.c linux-config> patching file fs/bcachefs/bkey_methods.h linux-config> patching file fs/bcachefs/bkey_sort.c linux-config> patching file fs/bcachefs/bkey_sort.h linux-config> patching file fs/bcachefs/bset.c linux-config> patching file fs/bcachefs/bset.h linux-config> patching file fs/bcachefs/btree_cache.c linux-config> patching file fs/bcachefs/btree_cache.h linux-config> patching file fs/bcachefs/btree_gc.c linux-config> patching file fs/bcachefs/btree_gc.h linux-config> patching file fs/bcachefs/btree_io.c linux-config> patching file fs/bcachefs/btree_io.h linux-config> patching file fs/bcachefs/btree_iter.c linux-config> patching file fs/bcachefs/btree_iter.h linux-config> patching file fs/bcachefs/btree_journal_iter.c linux-config> patching file fs/bcachefs/btree_journal_iter.h linux-config> patching file fs/bcachefs/btree_key_cache.c linux-config> patching file fs/bcachefs/btree_key_cache.h linux-config> patching file fs/bcachefs/btree_locking.c linux-config> patching file fs/bcachefs/btree_locking.h linux-config> patching file fs/bcachefs/btree_trans_commit.c linux-config> patching file fs/bcachefs/btree_types.h linux-config> patching file fs/bcachefs/btree_update.c linux-config> patching file fs/bcachefs/btree_update.h linux-config> patching file fs/bcachefs/btree_update_interior.c linux-config> patching file fs/bcachefs/btree_update_interior.h linux-config> patching file fs/bcachefs/btree_write_buffer.c linux-config> patching file fs/bcachefs/btree_write_buffer.h linux-config> patching file fs/bcachefs/btree_write_buffer_types.h linux-config> patching file fs/bcachefs/buckets.c linux-config> patching file fs/bcachefs/buckets.h linux-config> patching file fs/bcachefs/buckets_types.h linux-config> patching file fs/bcachefs/buckets_waiting_for_journal.c linux-config> patching file fs/bcachefs/buckets_waiting_for_journal.h linux-config> patching file fs/bcachefs/buckets_waiting_for_journal_types.h linux-config> patching file fs/bcachefs/chardev.c linux-config> patching file fs/bcachefs/chardev.h linux-config> patching file fs/bcachefs/checksum.c linux-config> patching file fs/bcachefs/checksum.h linux-config> patching file fs/bcachefs/clock.c linux-config> patching file fs/bcachefs/clock.h linux-config> patching file fs/bcachefs/clock_types.h linux-config> patching file fs/bcachefs/compress.c linux-config> patching file fs/bcachefs/compress.h linux-config> patching file fs/bcachefs/counters.c linux-config> patching file fs/bcachefs/counters.h linux-config> patching file fs/bcachefs/darray.h linux-config> patching file fs/bcachefs/data_update.c linux-config> patching file fs/bcachefs/data_update.h linux-config> patching file fs/bcachefs/debug.c linux-config> patching file fs/bcachefs/debug.h linux-config> patching file fs/bcachefs/dirent.c linux-config> patching file fs/bcachefs/dirent.h linux-config> patching file fs/bcachefs/disk_groups.c linux-config> patching file fs/bcachefs/disk_groups.h linux-config> patching file fs/bcachefs/ec.c linux-config> patching file fs/bcachefs/ec.h linux-config> patching file fs/bcachefs/ec_types.h linux-config> patching file fs/bcachefs/errcode.c linux-config> patching file fs/bcachefs/errcode.h linux-config> patching file fs/bcachefs/error.c linux-config> patching file fs/bcachefs/error.h linux-config> patching file fs/bcachefs/extent_update.c linux-config> patching file fs/bcachefs/extent_update.h linux-config> patching file fs/bcachefs/extents.c linux-config> patching file fs/bcachefs/extents.h linux-config> patching file fs/bcachefs/extents_types.h linux-config> patching file fs/bcachefs/eytzinger.h linux-config> patching file fs/bcachefs/fifo.h linux-config> patching file fs/bcachefs/fs-common.c linux-config> patching file fs/bcachefs/fs-common.h linux-config> patching file fs/bcachefs/fs-io-buffered.c linux-config> patching file fs/bcachefs/fs-io-buffered.h linux-config> patching file fs/bcachefs/fs-io-direct.c linux-config> patching file fs/bcachefs/fs-io-direct.h linux-config> patching file fs/bcachefs/fs-io-pagecache.c linux-config> patching file fs/bcachefs/fs-io-pagecache.h linux-config> patching file fs/bcachefs/fs-io.c linux-config> patching file fs/bcachefs/fs-io.h linux-config> patching file fs/bcachefs/fs-ioctl.c linux-config> patching file fs/bcachefs/fs-ioctl.h linux-config> patching file fs/bcachefs/fs.c linux-config> patching file fs/bcachefs/fs.h linux-config> patching file fs/bcachefs/fsck.c linux-config> patching file fs/bcachefs/fsck.h linux-config> patching file fs/bcachefs/inode.c linux-config> patching file fs/bcachefs/inode.h linux-config> patching file fs/bcachefs/io_misc.c linux-config> patching file fs/bcachefs/io_misc.h linux-config> patching file fs/bcachefs/io_read.c linux-config> patching file fs/bcachefs/io_read.h linux-config> patching file fs/bcachefs/io_write.c linux-config> patching file fs/bcachefs/io_write.h linux-config> patching file fs/bcachefs/io_write_types.h linux-config> patching file fs/bcachefs/journal.c linux-config> patching file fs/bcachefs/journal.h linux-config> patching file fs/bcachefs/journal_io.c linux-config> patching file fs/bcachefs/journal_io.h linux-config> patching file fs/bcachefs/journal_reclaim.c linux-config> patching file fs/bcachefs/journal_reclaim.h linux-config> patching file fs/bcachefs/journal_sb.c linux-config> patching file fs/bcachefs/journal_sb.h linux-config> patching file fs/bcachefs/journal_seq_blacklist.c linux-config> patching file fs/bcachefs/journal_seq_blacklist.h linux-config> patching file fs/bcachefs/journal_types.h linux-config> patching file fs/bcachefs/keylist.c linux-config> patching file fs/bcachefs/keylist.h linux-config> patching file fs/bcachefs/keylist_types.h linux-config> patching file fs/bcachefs/logged_ops.c linux-config> patching file fs/bcachefs/logged_ops.h linux-config> patching file fs/bcachefs/lru.c linux-config> patching file fs/bcachefs/lru.h linux-config> patching file fs/bcachefs/migrate.c linux-config> patching file fs/bcachefs/migrate.h linux-config> patching file fs/bcachefs/move.c linux-config> patching file fs/bcachefs/move.h linux-config> patching file fs/bcachefs/move_types.h linux-config> patching file fs/bcachefs/movinggc.c linux-config> patching file fs/bcachefs/movinggc.h linux-config> patching file fs/bcachefs/nocow_locking.c linux-config> patching file fs/bcachefs/nocow_locking.h linux-config> patching file fs/bcachefs/nocow_locking_types.h linux-config> patching file fs/bcachefs/opts.c linux-config> patching file fs/bcachefs/opts.h linux-config> patching file fs/bcachefs/printbuf.c linux-config> patching file fs/bcachefs/printbuf.h linux-config> patching file fs/bcachefs/quota.c linux-config> patching file fs/bcachefs/quota.h linux-config> patching file fs/bcachefs/quota_types.h linux-config> patching file fs/bcachefs/rebalance.c linux-config> patching file fs/bcachefs/rebalance.h linux-config> patching file fs/bcachefs/rebalance_types.h linux-config> patching file fs/bcachefs/recovery.c linux-config> patching file fs/bcachefs/recovery.h linux-config> patching file fs/bcachefs/recovery_types.h linux-config> patching file fs/bcachefs/reflink.c linux-config> patching file fs/bcachefs/reflink.h linux-config> patching file fs/bcachefs/replicas.c linux-config> patching file fs/bcachefs/replicas.h linux-config> patching file fs/bcachefs/replicas_types.h linux-config> patching file fs/bcachefs/sb-clean.c linux-config> patching file fs/bcachefs/sb-clean.h linux-config> patching file fs/bcachefs/sb-members.c linux-config> patching file fs/bcachefs/sb-members.h linux-config> patching file fs/bcachefs/seqmutex.h linux-config> patching file fs/bcachefs/siphash.c linux-config> patching file fs/bcachefs/siphash.h linux-config> patching file fs/bcachefs/six.c linux-config> patching file fs/bcachefs/six.h linux-config> patching file fs/bcachefs/snapshot.c linux-config> patching file fs/bcachefs/snapshot.h linux-config> patching file fs/bcachefs/str_hash.h linux-config> patching file fs/bcachefs/subvolume.c linux-config> patching file fs/bcachefs/subvolume.h linux-config> patching file fs/bcachefs/subvolume_types.h linux-config> patching file fs/bcachefs/super-io.c linux-config> patching file fs/bcachefs/super-io.h linux-config> patching file fs/bcachefs/super.c linux-config> patching file fs/bcachefs/super.h linux-config> patching file fs/bcachefs/super_types.h linux-config> patching file fs/bcachefs/sysfs.c linux-config> patching file fs/bcachefs/sysfs.h linux-config> patching file fs/bcachefs/tests.c linux-config> patching file fs/bcachefs/tests.h linux-config> patching file fs/bcachefs/trace.c linux-config> patching file fs/bcachefs/trace.h linux-config> patching file fs/bcachefs/two_state_shared_lock.c linux-config> patching file fs/bcachefs/two_state_shared_lock.h linux-config> patching file fs/bcachefs/util.c linux-config> patching file fs/bcachefs/util.h linux-config> patching file fs/bcachefs/varint.c linux-config> patching file fs/bcachefs/varint.h linux-config> patching file fs/bcachefs/vstructs.h linux-config> patching file fs/bcachefs/xattr.c linux-config> patching file fs/bcachefs/xattr.h linux-config> patching file include/linux/closure.h linux-config> patching file include/linux/mean_and_variance.h linux-config> patching file include/linux/nodemask_types.h linux-config> patching file lib/closure.c linux-config> patching file lib/math/mean_and_variance.c linux-config> patching file lib/math/mean_and_variance_test.c error: builder for '/nix/store/2488wbsl9shba7l3d69ppgn59kbhicjk-linux-config-6.5.13-bcachefs-unstable-2023-06-28.drv' failed with exit code 1; last 10 log lines: > patching file fs/bcachefs/varint.h > patching file fs/bcachefs/vstructs.h > patching file fs/bcachefs/xattr.c > patching file fs/bcachefs/xattr.h > patching file include/linux/closure.h > patching file include/linux/mean_and_variance.h > patching file include/linux/nodemask_types.h > patching file lib/closure.c > patching file lib/math/mean_and_variance.c > patching file lib/math/mean_and_variance_test.c For full logs, run 'nix log /nix/store/2488wbsl9shba7l3d69ppgn59kbhicjk-linux-config-6.5.13-bcachefs-unstable-2023-06-28.drv'. error: 1 dependencies of derivation '/nix/store/qbfb349m96c06s8fbkk973ay2ca97abn-linux-6.5.13-bcachefs-unstable-2023-06-28.drv' failed to build ```

Same happens whether it's on master or release-23.11.

RaitoBezarius commented 8 months ago

We should just reflow the patches?

Madouura commented 8 months ago

We should just reflow the patches?

From what the log tells me, it's the same issue we usually have with this kernel. Kent's repo is using a commit that has (now) been included in copy nix is using, and we're having a conflict because they're both the same patch. I have absolutely no idea how to fix this in nixpkgs, other than reverting to just using Kent's kernel without patching the nix kernel. Furthermore, this is one of the strongest reasons why I wanted to just get us on linux_testing ASAP.

RaitoBezarius commented 8 months ago

We should just reflow the patches?

From what the log tells me, it's the same issue we usually have with this kernel. Kent's repo is using a commit that has (now) been included in copy nix is using, and we're having a conflict because they're both the same patch. I have absolutely no idea how to fix this in nixpkgs. Furthermore, this is one of the strongest reasons why I wanted to just get us on linux_testing ASAP.

It is very simple to solve, if the generic radix tree stuff is 1:1 exactly what we have in the tree now, we only need to exclude it from the bcachefs patchset. If it's not, we can exclude it and re-add the deltas.

Did you ask Kent to rebase his tree for the newest stable?

Nonetheless, this is a trivial matter and at least one bcachefs maintainers ought to be able to do this. There's no reason to drop the ball just because of trivial conflicts.

If this quality bar is not attainable, I would rather ask everyone to wait for a stable release of bcachefs rather than rushing everything over testing. We already had breakage, and it's not like a lot of stuff is stabilized, we still don't have automatic repair to mount in the NixOS modules.

This is a filesystem, we are not in the development phase of bcachefs anymore, this will be used by people, so please be considerate of this.

RaitoBezarius commented 8 months ago
diff --git i/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix w/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index c58c4e67e4d0..ba122ff92651 100644
--- i/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ w/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -6,8 +6,8 @@
 # bcachefs-tools stores the expected-revision in:
 #   https://evilpiepirate.org/git/bcachefs-tools.git/tree/.bcachefs_revision
 # but this does not means that it'll be the latest-compatible revision
-, currentCommit ? "4d2faeb4fb58c389dc9f76b8d5ae991ef4497e04"
-, diffHash ? "sha256-DtMc8P4lTRzvS6PVvD7WtWEPsfnxIXSpqMsKKWs+edI="
+, currentCommit ? "08398d3534d8cdba7d90d2e37ac8bdb3e143dedf"
+, diffHash ? "sha256-diokoy0m6DeEAVe0lRkgSLkhx9xoDpVMyLJnPwLux+Q="
 , kernelPatches # must always be defined in bcachefs' all-packages.nix entry because it's also a top-level attribute supplied by callPackage
 , argsOverride ? {}
 , ...
@@ -41,6 +41,10 @@
         name = "bcachefs-${currentCommit}.diff";
         url = "https://evilpiepirate.org/git/bcachefs.git/rawdiff/?id=${currentCommit}&id2=v${lib.versions.majorMinor kernel.version}";
         sha256 = diffHash;
+        excludes = [
+          "include/linux/generic-radix-tree.h"
+          "lib/generic-radix-tree.c"
+        ];
       };
     } ] ++ kernelPatches;
 }))

Here we go.

RaitoBezarius commented 8 months ago

This requires to re-apply some specific patches to re-add genradix_for_each_reverse inside the kernel or to adopt genradix_for_each_from from upstream inside the fs/bcachefs/journal_io.c code.

Madouura commented 8 months ago

we only need to exclude it from the bcachefs patchset.

I had no idea we could exclude individual files/folders in the patch! Thanks!

Did you ask Kent to rebase his tree for the newest stable

I have not. To be frank I have a hard time seeing Kent making a bcachefs release just for 6.5.13 when his main focus is on 6.7 and 6.8.

This is a filesystem, we are not in the development phase of bcachefs anymore, this will be used by people, so please be considerate of this.

Yes, I agree. I was merely reiterating why I was so insistent on replacing linux_testing_bcachefs with linux_testing ASAP. The maintenance part of that concern should be fixed now that excludes has been made apparent.

RaitoBezarius commented 8 months ago

I have not. To be frank I have a hard time seeing Kent making a bcachefs release just for 6.5.13 when his main focus is on 6.7 and 6.8.

The rebase seems also quite trivial, I just did it, I asked Kent about that. I think Kent can say when he's too busy or deem something as not a priority. :)

Madouura commented 8 months ago

I think Kent can say when he's too busy or deem something as not a priority. :)

Cheers to the brave then. :rofl: Thank you for doing so much leg work, it'll be a while for me since I am currently recompiling most of the ROCm stack.

bendlas commented 8 months ago

FWIW, I did a rebase of bcachefs onto 6.6 here: https://github.com/bendlas/linux/tree/bcachefs-2023-10-30_6.6.5

I used the 2023-10-30 release for that, because that's the last bcachefs tag, that works somewhat cleanly for me.

christoph-cullmann commented 8 months ago

I tried the current state on unstable with 6.7 and the https://wiki.nixos.org/wiki/Bcachefs#NixOS_installation_on_bcachefs guide. So far all fine, the only issues I have is that if you have x encrypted filesystems during boot it will ask x times.