<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/md/dm-vdo, branch master</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>dm vdo: use GFP_NOIO for blkdev_issue_zeroout on format path</title>
<updated>2026-05-04T13:02:25+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-04-28T18:39:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fb7415f2ab0e3c818254cbf5fb0afda71bef4333'/>
<id>fb7415f2ab0e3c818254cbf5fb0afda71bef4333</id>
<content type='text'>
GFP_NOWAIT is inappropriate when blkdev_issue_zeroout may sleep and
bio_alloc can fail under pressure; use GFP_NOIO for clear_partition and
vdo_clear_layout zeroout calls.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Signed-off-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
Fixes: fc1d43826702 ("dm vdo: save the formatted metadata to disk")
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GFP_NOWAIT is inappropriate when blkdev_issue_zeroout may sleep and
bio_alloc can fail under pressure; use GFP_NOIO for clear_partition and
vdo_clear_layout zeroout calls.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Signed-off-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
Fixes: fc1d43826702 ("dm vdo: save the formatted metadata to disk")
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: Fix spelling mistake "postive" -&gt; "positive"</title>
<updated>2026-03-30T10:06:08+00:00</updated>
<author>
<name>Colin Ian King</name>
<email>colin.i.king@gmail.com</email>
</author>
<published>2026-03-28T12:33:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a1cf2bd5b6424ead3d75d09c822f665907094a80'/>
<id>a1cf2bd5b6424ead3d75d09c822f665907094a80</id>
<content type='text'>
There is a spelling mistake in a vdo_log_error message. Fix it.

Signed-off-by: Colin Ian King &lt;colin.i.king@gmail.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a spelling mistake in a vdo_log_error message. Fix it.

Signed-off-by: Colin Ian King &lt;colin.i.king@gmail.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: save the formatted metadata to disk</title>
<updated>2026-03-26T17:19:25+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-03-24T18:06:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fc1d43826702d8c14845c187d3ea0743fdf8f223'/>
<id>fc1d43826702d8c14845c187d3ea0743fdf8f223</id>
<content type='text'>
Add vdo_save_super_block() and vdo_save_geometry_block() to perform
asynchronous writes of the super block and geometry block respectively.
Add vdo_clear_layout() to zero the UDS index's first block, the block
map partition, and the recovery journal partition.

These operations are driven by new phases in the pre-load state machine
(PRE_LOAD_PHASE_FORMAT_*), ensuring that disk writes happen during
pre-resume rather than during dmsetup create.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add vdo_save_super_block() and vdo_save_geometry_block() to perform
asynchronous writes of the super block and geometry block respectively.
Add vdo_clear_layout() to zero the UDS index's first block, the block
map partition, and the recovery journal partition.

These operations are driven by new phases in the pre-load state machine
(PRE_LOAD_PHASE_FORMAT_*), ensuring that disk writes happen during
pre-resume rather than during dmsetup create.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: add formatting logic and initialization</title>
<updated>2026-03-26T17:19:15+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-03-24T18:06:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=defce4e039bc0100164964f79e896d05cb45dc76'/>
<id>defce4e039bc0100164964f79e896d05cb45dc76</id>
<content type='text'>
Add the core formatting logic. The initialization path is updated to
read the geometry block (block 0 on the storage device). If the block
is entirely zeroed, the device is treated as unformatted and
vdo_format() is called. Otherwise, the existing geometry is parsed
and the VDO is loaded as before.

The vdo_format() function initializes the volume geometry and super
block, and marks the VDO as needing it's layout saved to disk.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the core formatting logic. The initialization path is updated to
read the geometry block (block 0 on the storage device). If the block
is entirely zeroed, the device is treated as unformatted and
vdo_format() is called. Otherwise, the existing geometry is parsed
and the VDO is loaded as before.

The vdo_format() function initializes the volume geometry and super
block, and marks the VDO as needing it's layout saved to disk.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: add synchronous metadata I/O submission helper</title>
<updated>2026-03-26T17:19:05+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-03-24T18:06:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9d9c28aa867ae3ffdd967a8caeb4e3fb6d4003cd'/>
<id>9d9c28aa867ae3ffdd967a8caeb4e3fb6d4003cd</id>
<content type='text'>
Add vdo_submit_metadata_vio_wait(), a synchronous I/O submission
helper that blocks until completion. This is needed for I/O during
early initialization before work queues are available.

Refactor read_geometry_block() to use it.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add vdo_submit_metadata_vio_wait(), a synchronous I/O submission
helper that blocks until completion. This is needed for I/O during
early initialization before work queues are available.

Refactor read_geometry_block() to use it.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: add geometry block structure</title>
<updated>2026-03-26T17:18:55+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-03-24T18:06:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b5d1f45c5fea9fa112f0dddebd95fadad06d3bd8'/>
<id>b5d1f45c5fea9fa112f0dddebd95fadad06d3bd8</id>
<content type='text'>
Introduce a vdo_geometry_block structure, containing a vio and buffer,
mirroring the existing vdo_super_block structure. Both are now
initialized at VDO startup and freed at shutdown, establishing the
infrastructure needed to read and write the geometry block using the
same mechanisms as the super block.

Refactor read_geometry_block() to use the new structure.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce a vdo_geometry_block structure, containing a vio and buffer,
mirroring the existing vdo_super_block structure. Both are now
initialized at VDO startup and freed at shutdown, establishing the
infrastructure needed to read and write the geometry block using the
same mechanisms as the super block.

Refactor read_geometry_block() to use the new structure.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: add geometry block encoding</title>
<updated>2026-03-26T17:18:42+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-03-24T18:06:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=427bf2c1f77435b36749a03e4f9d4549e3807e2d'/>
<id>427bf2c1f77435b36749a03e4f9d4549e3807e2d</id>
<content type='text'>
Add vdo_encode_volume_geometry() to write the geometry block into a
buffer so that it can be written to disk. The corresponding decode
path already exists.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add vdo_encode_volume_geometry() to write the geometry block into a
buffer so that it can be written to disk. The corresponding decode
path already exists.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: add upfront validation for logical size</title>
<updated>2026-03-26T17:18:25+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-03-24T18:06:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=beced130a367e0b99fa9424505ee7f07ddea86de'/>
<id>beced130a367e0b99fa9424505ee7f07ddea86de</id>
<content type='text'>
Add a validation check that the logical size passed via the table line
does not exceed MAXIMUM_VDO_LOGICAL_BLOCKS.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a validation check that the logical size passed via the table line
does not exceed MAXIMUM_VDO_LOGICAL_BLOCKS.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: add formatting parameters to table line</title>
<updated>2026-03-26T17:18:08+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-03-24T18:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2fb98e4170c4a0d9ebe091ca2421121daa352de0'/>
<id>2fb98e4170c4a0d9ebe091ca2421121daa352de0</id>
<content type='text'>
Extend the dm table line with three new optional parameters:
indexMemory (UDS index memory size), indexSparse (dense vs sparse
index), and slabSize (blocks per allocation slab). These values are
parsed, validated, and stored in the device configuration for use
during formatting.

Rework the slab size constants from the single MAX_VDO_SLAB_BITS into
explicit MIN_VDO_SLAB_BLOCKS, MAX_VDO_SLAB_BLOCKS, and
DEFAULT_VDO_SLAB_BLOCKS values.

Bump the target version from 9.1.0 to 9.2.0 to reflect this table
line change.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extend the dm table line with three new optional parameters:
indexMemory (UDS index memory size), indexSparse (dense vs sparse
index), and slabSize (blocks per allocation slab). These values are
parsed, validated, and stored in the device configuration for use
during formatting.

Rework the slab size constants from the single MAX_VDO_SLAB_BITS into
explicit MIN_VDO_SLAB_BLOCKS, MAX_VDO_SLAB_BLOCKS, and
DEFAULT_VDO_SLAB_BLOCKS values.

Bump the target version from 9.1.0 to 9.2.0 to reflect this table
line change.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dm vdo: add super block initialization to encodings.c</title>
<updated>2026-03-26T17:17:42+00:00</updated>
<author>
<name>Bruce Johnston</name>
<email>bjohnsto@redhat.com</email>
</author>
<published>2026-03-24T18:06:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e073bb098ae28a909ece08ec05a6c59dbd282b12'/>
<id>e073bb098ae28a909ece08ec05a6c59dbd282b12</id>
<content type='text'>
Add vdo_initialize_component_states() to populate the super block,
computing the space required for the main VDO components on disk.
Those include the slab depot, block map, and recovery journal.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add vdo_initialize_component_states() to populate the super block,
computing the space required for the main VDO components on disk.
Those include the slab depot, block map, and recovery journal.

Signed-off-by: Bruce Johnston &lt;bjohnsto@redhat.com&gt;
Reviewed-by: Matthew Sakai &lt;msakai@redhat.com&gt;
Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
