diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-08-28 13:39:31 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-08-28 13:40:49 -0400 |
commit | 77ca58e3a7c4e60bc0713be2e048e8ca04a36ed1 (patch) | |
tree | 4c7a84ea579d0587488f171c290fc8cf50d0465d /c_src/posix_to_bcachefs.h | |
parent | 34f9eeba1df78d94f862f268e9d05101ad1dea17 (diff) |
posix_to_bcachefs.c: Use rhashtable for tracking hardlinks
bcachefs uses 64 bit inode numbers by default, which overflow genradix
keys when we multiply the inode number by the object size for the actual
genradix lookup.
Switch to a rhashtable, and only index files that actually have
hardlinks.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'c_src/posix_to_bcachefs.h')
-rw-r--r-- | c_src/posix_to_bcachefs.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/c_src/posix_to_bcachefs.h b/c_src/posix_to_bcachefs.h index 3fc586d8..65e5de1f 100644 --- a/c_src/posix_to_bcachefs.h +++ b/c_src/posix_to_bcachefs.h @@ -33,7 +33,7 @@ struct copy_fs_state { u64 bcachefs_inum; dev_t dev; - GENRADIX(u64) hardlinks; + struct rhashtable hardlinks; ranges extents; enum bch_migrate_type type; unsigned verbosity; |