<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/bcachefs/data_update.h, branch linux-6.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.15.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.15.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-03-30T22:25:12Z</updated>
<entry>
<title>bcachefs: Log original key being moved in data updates</title>
<updated>2025-03-30T22:25:12Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-30T20:57:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7fdc3fa3cb5fb561f5945b4de418d48d1a726a8d'/>
<id>urn:sha1:7fdc3fa3cb5fb561f5945b4de418d48d1a726a8d</id>
<content type='text'>
There's something going on with the data move path; log the original key
being moved for debugging.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Scrub</title>
<updated>2025-03-15T01:02:12Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2024-12-29T00:59:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f269ae55d2de9c6aff5b289cd94c8eaab7b9b2c3'/>
<id>urn:sha1:f269ae55d2de9c6aff5b289cd94c8eaab7b9b2c3</id>
<content type='text'>
Add a new data op to walk all data and metadata in a filesystem,
checking if it can be read successfully, and on error repairing from
another copy if possible.

- New helper: bch2_dev_idx_is_online(), so that we can bail out and
  report to userspace when we're unable to scrub because the device is
  offline

- data_update_opts, which controls the data move path, now understands
  scrub: data is only read, not written. The read path is responsible
  for rewriting on read error, as with other reads.

- scrub_pred skips data extents that don't have checksums

- bch_ioctl_data has a new scrub member, which has a data_types field
  for data types to check - i.e. all data types, or only metadata.

- Add new entries to bch_move_stats so that we can report numbers for
  corrected and uncorrected errors

- Add a new enum to bch_ioctl_data_event for explicitly reporting
  completion and return code (i.e. device offline)

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: cleanup redundant code around data_update_op initialization</title>
<updated>2025-03-15T01:02:11Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-01-16T05:40:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f7111f820d5b956bab7ff744ecae953e2bf8e4f'/>
<id>urn:sha1:6f7111f820d5b956bab7ff744ecae953e2bf8e4f</id>
<content type='text'>
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: data_update now embeds bch_read_bio</title>
<updated>2025-03-15T01:02:11Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-01-15T23:53:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a70bd976303296940ebc7611660ed0dedfeb1fd7'/>
<id>urn:sha1:a70bd976303296940ebc7611660ed0dedfeb1fd7</id>
<content type='text'>
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: bch2_data_update_inflight_to_text()</title>
<updated>2025-03-15T01:02:11Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2024-12-31T23:16:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3075e68d268844b50b7a8a078510d1c960a1325f'/>
<id>urn:sha1:3075e68d268844b50b7a8a078510d1c960a1325f</id>
<content type='text'>
Add a new helper for bch2_moving_ctxt_to_text(), which may be used to
debug if moving_ios are getting stuck.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Don't keep tons of cached pointers around</title>
<updated>2024-10-29T10:34:10Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2024-10-21T00:02:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a34eef6dd179463e70a97bbf8453b7ca21d1e666'/>
<id>urn:sha1:a34eef6dd179463e70a97bbf8453b7ca21d1e666</id>
<content type='text'>
We had a bug report where the data update path was creating an extent
that failed to validate because it had too many pointers; almost all of
them were cached.

To fix this, we have:
- want_cached_ptr(), a new helper that checks if we even want a cached
  pointer (is on appropriate target, device is readable).

- bch2_extent_set_ptr_cached() now only sets a pointer cached if we want
  it.

- bch2_extent_normalize_by_opts() now ensures that we only have a single
  cached pointer that we want.

While working on this, it was noticed that this doesn't work well with
reflinked data and per-file options. Another patch series is coming that
plumbs through additional io path options through bch_extent_rebalance,
with improved option handling.

Reported-by: Reed Riley &lt;reed@riley.engineer&gt;
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: bch2_data_update_to_text()</title>
<updated>2024-07-10T13:53:39Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2024-07-03T17:25:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ad8b68cd3941c547cf73154244488ab412076177'/>
<id>urn:sha1:ad8b68cd3941c547cf73154244488ab412076177</id>
<content type='text'>
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Data update path won't accidentaly grow replicas</title>
<updated>2023-11-26T02:48:42Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-11-25T02:51:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7d9f8468ff7589073981b3eb8b175945c7dcd13c'/>
<id>urn:sha1:7d9f8468ff7589073981b3eb8b175945c7dcd13c</id>
<content type='text'>
Previously, there was a bug where if an extent had greater durability
than required (because we needed to move a durability=1 pointer and
ended up putting it on a durability 2 device), we would submit a write
for replicas=2 - the durability of the pointer being rewritten - instead
of the number of replicas required to bring it back up to the
data_replicas option.

This, plus the allocation path sometimes allocating on a greater
durability device than requested, meant that extents could continue
having more and more replicas added as they were being rewritten.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: move: convert to bbpos</title>
<updated>2023-10-31T16:18:37Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-10-23T19:36:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d5eade93452bd1a892e2155e9bb723f04992bdac'/>
<id>urn:sha1:d5eade93452bd1a892e2155e9bb723f04992bdac</id>
<content type='text'>
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Break up io.c</title>
<updated>2023-10-22T21:10:12Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-09-10T22:05:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1809b8cba756d32bd6e976ed4ee64efdf66c6d94'/>
<id>urn:sha1:1809b8cba756d32bd6e976ed4ee64efdf66c6d94</id>
<content type='text'>
More reorganization, this splits up io.c into
 - io_read.c
 - io_misc.c - fallocate, fpunch, truncate
 - io_write.c

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
</feed>
