<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/gfs2/bmap.c, branch linux-6.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2023-02-22T11:06:20Z</updated>
<entry>
<title>gfs2: Convert gfs2_page_add_databufs to folios</title>
<updated>2023-02-22T11:06:20Z</updated>
<author>
<name>Andreas Gruenbacher</name>
</author>
<published>2023-02-01T14:50:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c1b0c3cfcbad25d2c412863c27638c933f1d911b'/>
<id>urn:sha1:c1b0c3cfcbad25d2c412863c27638c933f1d911b</id>
<content type='text'>
Convert gfs2_page_add_databufs() to folios and rename it to
gfs2_trans_add_databufs().

Cc: Matthew Wilcox &lt;willy@infradead.org&gt;
Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
</content>
</entry>
<entry>
<title>iomap: Rename page_ops to folio_ops</title>
<updated>2023-01-18T18:44:05Z</updated>
<author>
<name>Andreas Gruenbacher</name>
</author>
<published>2023-01-15T16:50:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=471859f57d42537626a56312cfb50cd6acee09ae'/>
<id>urn:sha1:471859f57d42537626a56312cfb50cd6acee09ae</id>
<content type='text'>
The operations in struct page_ops all operate on folios, so rename
struct page_ops to struct folio_ops.

Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
Reviewed-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
[djwong: port around not removing iomap_valid]
Signed-off-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
</content>
</entry>
<entry>
<title>iomap: Rename page_prepare handler to get_folio</title>
<updated>2023-01-18T18:44:05Z</updated>
<author>
<name>Andreas Gruenbacher</name>
</author>
<published>2023-01-15T16:50:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c82abc2394642490da736b1ba78671bbcef81150'/>
<id>urn:sha1:c82abc2394642490da736b1ba78671bbcef81150</id>
<content type='text'>
The -&gt;page_prepare() handler in struct iomap_page_ops is now somewhat
misnamed, so rename it to -&gt;get_folio().

Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
Reviewed-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
</content>
</entry>
<entry>
<title>iomap/gfs2: Get page in page_prepare handler</title>
<updated>2023-01-18T18:44:04Z</updated>
<author>
<name>Andreas Gruenbacher</name>
</author>
<published>2023-01-15T16:49:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9060bc4d3aca6106bbe72891efba391d9d6b86e7'/>
<id>urn:sha1:9060bc4d3aca6106bbe72891efba391d9d6b86e7</id>
<content type='text'>
Change the iomap -&gt;page_prepare() handler to get and return a locked
folio instead of doing that in iomap_write_begin().  This allows to
recover from out-of-memory situations in -&gt;page_prepare(), which
eliminates the corresponding error handling code in iomap_write_begin().
The -&gt;put_folio() handler now also isn't called with NULL as the folio
value anymore.

Filesystems are expected to use the iomap_get_folio() helper for getting
locked folios in their -&gt;page_prepare() handlers.

Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
Reviewed-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
</content>
</entry>
<entry>
<title>iomap: Rename page_done handler to put_folio</title>
<updated>2023-01-18T18:44:04Z</updated>
<author>
<name>Andreas Gruenbacher</name>
</author>
<published>2023-01-15T16:45:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=40405dddd98a9a95585482af46b8e269f5ebe5df'/>
<id>urn:sha1:40405dddd98a9a95585482af46b8e269f5ebe5df</id>
<content type='text'>
The -&gt;page_done() handler in struct iomap_page_ops is now somewhat
misnamed in that it mainly deals with unlocking and putting a folio, so
rename it to -&gt;put_folio().

Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
Reviewed-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
</content>
</entry>
<entry>
<title>iomap/gfs2: Unlock and put folio in page_done handler</title>
<updated>2023-01-18T18:44:04Z</updated>
<author>
<name>Andreas Gruenbacher</name>
</author>
<published>2023-01-15T16:45:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=80baab88bb93eeaa133b426d24dfc0775a8cf824'/>
<id>urn:sha1:80baab88bb93eeaa133b426d24dfc0775a8cf824</id>
<content type='text'>
When an iomap defines a -&gt;page_done() handler in its page_ops, delegate
unlocking the folio and putting the folio reference to that handler.

This allows to fix a race between journaled data writes and folio
writeback in gfs2: before this change, gfs2_iomap_page_done() was called
after unlocking the folio, so writeback could start writing back the
folio's buffers before they could be marked for writing to the journal.
Also, try_to_free_buffers() could free the buffers before
gfs2_iomap_page_done() was done adding the buffers to the current
current transaction.  With this change, gfs2_iomap_page_done() adds the
buffers to the current transaction while the folio is still locked, so
the problems described above can no longer occur.

The only current user of -&gt;page_done() is gfs2, so other filesystems are
not affected.  To catch out any out-of-tree users, switch from a page to
a folio in -&gt;page_done().

Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
Reviewed-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Darrick J. Wong &lt;djwong@kernel.org&gt;
</content>
</entry>
<entry>
<title>gfs2: Always check inode size of inline inodes</title>
<updated>2022-12-06T15:06:31Z</updated>
<author>
<name>Andreas Gruenbacher</name>
</author>
<published>2022-12-04T16:00:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=70376c7ff31221f1d21db5611d8209e677781d3a'/>
<id>urn:sha1:70376c7ff31221f1d21db5611d8209e677781d3a</id>
<content type='text'>
Check if the inode size of stuffed (inline) inodes is within the allowed
range when reading inodes from disk (gfs2_dinode_in()).  This prevents
us from on-disk corruption.

The two checks in stuffed_readpage() and gfs2_unstuffer_page() that just
truncate inline data to the maximum allowed size don't actually make
sense, and they can be removed now as well.

Reported-by: syzbot+7bb81dfa9cda07d9cd9d@syzkaller.appspotmail.com
Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
</content>
</entry>
<entry>
<title>fs/buffer: Combine two submit_bh() and ll_rw_block() arguments</title>
<updated>2022-07-14T18:14:32Z</updated>
<author>
<name>Bart Van Assche</name>
</author>
<published>2022-07-14T18:07:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1420c4a549bf28ffddbed827d61fb3d4d2132ddb'/>
<id>urn:sha1:1420c4a549bf28ffddbed827d61fb3d4d2132ddb</id>
<content type='text'>
Both submit_bh() and ll_rw_block() accept a request operation type and
request flags as their first two arguments. Micro-optimize these two
functions by combining these first two arguments into a single argument.
This patch does not change the behavior of any of the modified code.

Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Acked-by: Song Liu &lt;song@kernel.org&gt; (for the md changes)
Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Link: https://lore.kernel.org/r/20220714180729.1065367-48-bvanassche@acm.org
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>gfs2: Fix filesystem block deallocation for short writes</title>
<updated>2022-05-13T19:59:18Z</updated>
<author>
<name>Andreas Gruenbacher</name>
</author>
<published>2022-04-14T15:52:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d031a8866e709c9d1ee5537a321b6192b4d2dc5b'/>
<id>urn:sha1:d031a8866e709c9d1ee5537a321b6192b4d2dc5b</id>
<content type='text'>
When a write cannot be carried out in full, gfs2_iomap_end() releases
blocks that have been allocated for this write but haven't been used.

To compute the end of the allocation, gfs2_iomap_end() incorrectly
rounded the end of the attempted write down to the next block boundary
to arrive at the end of the allocation.  It would have to round up, but
the end of the allocation is also available as iomap-&gt;offset +
iomap-&gt;length, so just use that instead.

In addition, use round_up() for computing the start of the unused range.

Fixes: 64bc06bb32ee ("gfs2: iomap buffered write support")
Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
</content>
</entry>
<entry>
<title>gfs2: Remove return value for gfs2_indirect_init</title>
<updated>2022-03-03T14:59:21Z</updated>
<author>
<name>Bob Peterson</name>
</author>
<published>2022-03-03T12:32:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b2963932346f0631c5145f656a22d4237f0956fa'/>
<id>urn:sha1:b2963932346f0631c5145f656a22d4237f0956fa</id>
<content type='text'>
The return value from function gfs2_indirect_init is never used, so
remove it.

Signed-off-by: Bob Peterson &lt;rpeterso@redhat.com&gt;
Signed-off-by: Andreas Gruenbacher &lt;agruenba@redhat.com&gt;
</content>
</entry>
</feed>
