<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/mm/truncate.c, branch linux-5.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-03-23T01:26:56Z</updated>
<entry>
<title>Merge tag 'folio-5.18b' of git://git.infradead.org/users/willy/pagecache</title>
<updated>2022-03-23T01:26:56Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2022-03-23T01:26:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6b1f86f8e9c7f9de7ca1cb987b2cf25e99b1ae3a'/>
<id>urn:sha1:6b1f86f8e9c7f9de7ca1cb987b2cf25e99b1ae3a</id>
<content type='text'>
Pull filesystem folio updates from Matthew Wilcox:
 "Primarily this series converts some of the address_space operations to
  take a folio instead of a page.

  Notably:

   - a_ops-&gt;is_partially_uptodate() takes a folio instead of a page and
     changes the type of the 'from' and 'count' arguments to make it
     obvious they're bytes.

   - a_ops-&gt;invalidatepage() becomes -&gt;invalidate_folio() and has a
     similar type change.

   - a_ops-&gt;launder_page() becomes -&gt;launder_folio()

   - a_ops-&gt;set_page_dirty() becomes -&gt;dirty_folio() and adds the
     address_space as an argument.

  There are a couple of other misc changes up front that weren't worth
  separating into their own pull request"

* tag 'folio-5.18b' of git://git.infradead.org/users/willy/pagecache: (53 commits)
  fs: Remove aops -&gt;set_page_dirty
  fb_defio: Use noop_dirty_folio()
  fs: Convert __set_page_dirty_no_writeback to noop_dirty_folio
  fs: Convert __set_page_dirty_buffers to block_dirty_folio
  nilfs: Convert nilfs_set_page_dirty() to nilfs_dirty_folio()
  mm: Convert swap_set_page_dirty() to swap_dirty_folio()
  ubifs: Convert ubifs_set_page_dirty to ubifs_dirty_folio
  f2fs: Convert f2fs_set_node_page_dirty to f2fs_dirty_node_folio
  f2fs: Convert f2fs_set_data_page_dirty to f2fs_dirty_data_folio
  f2fs: Convert f2fs_set_meta_page_dirty to f2fs_dirty_meta_folio
  afs: Convert afs_dir_set_page_dirty() to afs_dir_dirty_folio()
  btrfs: Convert extent_range_redirty_for_io() to use folios
  fs: Convert trivial uses of __set_page_dirty_nobuffers to filemap_dirty_folio
  btrfs: Convert from set_page_dirty to dirty_folio
  fscache: Convert fscache_set_page_dirty() to fscache_dirty_folio()
  fs: Add aops-&gt;dirty_folio
  fs: Remove aops-&gt;launder_page
  orangefs: Convert launder_page to launder_folio
  nfs: Convert from launder_page to launder_folio
  fuse: Convert from launder_page to launder_folio
  ...
</content>
</entry>
<entry>
<title>mm/truncate: Combine invalidate_mapping_pagevec() and __invalidate_mapping_pages()</title>
<updated>2022-03-21T16:59:02Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-13T22:22:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c56109dd35c9204cd6c49d2116ef36e5044ef867'/>
<id>urn:sha1:c56109dd35c9204cd6c49d2116ef36e5044ef867</id>
<content type='text'>
We can save a function call by combining these two functions, which
are identical except for the return value.  Also move the prototype
to mm/internal.h.

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
</content>
</entry>
<entry>
<title>mm: Turn deactivate_file_page() into deactivate_file_folio()</title>
<updated>2022-03-21T16:59:02Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-13T21:40:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=261b6840ed10419ac2f554e515592d59dd5c82cf'/>
<id>urn:sha1:261b6840ed10419ac2f554e515592d59dd5c82cf</id>
<content type='text'>
This function has one caller which already has a reference to the
page, so we don't need to use get_page_unless_zero().  Also move the
prototype to mm/internal.h.

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
</content>
</entry>
<entry>
<title>mm/truncate: Convert __invalidate_mapping_pages() to use a folio</title>
<updated>2022-03-21T16:59:02Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-13T21:38:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b4545f46533b7e69cb20e05c9fe987be76e1a3da'/>
<id>urn:sha1:b4545f46533b7e69cb20e05c9fe987be76e1a3da</id>
<content type='text'>
Now we can call mapping_evict_folio() instead of invalidate_inode_page()
and save a few calls to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
</content>
</entry>
<entry>
<title>mm/truncate: Split invalidate_inode_page() into mapping_evict_folio()</title>
<updated>2022-03-21T16:59:02Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-13T20:22:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d6c75dc22c755c567838f12f12a16f2a323ebd4e'/>
<id>urn:sha1:d6c75dc22c755c567838f12f12a16f2a323ebd4e</id>
<content type='text'>
Some of the callers already have the address_space and can avoid calling
folio_mapping() and checking if the folio was already truncated.  Also
add kernel-doc and fix the return type (in case we ever support folios
larger than 4TB).

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
</content>
</entry>
<entry>
<title>mm: Convert remove_mapping() to take a folio</title>
<updated>2022-03-21T16:59:01Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-13T03:48:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5100da38ef3c33d9ad8b60b29c2b671249bf7e1d'/>
<id>urn:sha1:5100da38ef3c33d9ad8b60b29c2b671249bf7e1d</id>
<content type='text'>
Add kernel-doc and return the number of pages removed in order to
get the statistics right in __invalidate_mapping_pages().

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
</content>
</entry>
<entry>
<title>mm/truncate: Replace page_mapped() call in invalidate_inode_page()</title>
<updated>2022-03-21T16:59:01Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-12T22:43:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e41c81d0d30e1a6ebf408feaf561f80cac4457dc'/>
<id>urn:sha1:e41c81d0d30e1a6ebf408feaf561f80cac4457dc</id>
<content type='text'>
folio_mapped() is expensive because it has to check each page's mapcount
field.  A cheaper check is whether there are any extra references to
the page, other than the one we own, one from the page private data and
the ones held by the page cache.

The call to remove_mapping() will fail in any case if it cannot freeze
the refcount, but failing here avoids cycling the i_pages spinlock.

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Reviewed-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
</content>
</entry>
<entry>
<title>mm/truncate: Convert invalidate_inode_page() to use a folio</title>
<updated>2022-03-21T16:59:01Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-12T22:39:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4418481396b2caeded6d0eed11ac9052ab4c0763'/>
<id>urn:sha1:4418481396b2caeded6d0eed11ac9052ab4c0763</id>
<content type='text'>
This saves a number of calls to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
</content>
</entry>
<entry>
<title>mm/truncate: Inline invalidate_complete_page() into its one caller</title>
<updated>2022-03-21T16:59:01Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-12T20:27:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1b8ddbeeb9b819e62b7190115023ce858a159f5c'/>
<id>urn:sha1:1b8ddbeeb9b819e62b7190115023ce858a159f5c</id>
<content type='text'>
invalidate_inode_page() is the only caller of invalidate_complete_page()
and inlining it reveals that the first check is unnecessary (because we
hold the page locked, and we just retrieved the mapping from the page).
Actually, it does make a difference, in that tail pages no longer fail
at this check, so it's now possible to remove a tail page from a mapping.

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Reviewed-by: John Hubbard &lt;jhubbard@nvidia.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>fs: Add aops-&gt;launder_folio</title>
<updated>2022-03-15T12:23:30Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2022-02-09T20:21:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=affa80e8c6a1df473694c2087259901872309cc4'/>
<id>urn:sha1:affa80e8c6a1df473694c2087259901872309cc4</id>
<content type='text'>
Since the only difference between -&gt;launder_page and -&gt;launder_folio
is the type of the pointer, these can safely use a union without
affecting bisectability.

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Tested-by: Damien Le Moal &lt;damien.lemoal@opensource.wdc.com&gt;
Acked-by: Damien Le Moal &lt;damien.lemoal@opensource.wdc.com&gt;
Tested-by: Mike Marshall &lt;hubcap@omnibond.com&gt; # orangefs
Tested-by: David Howells &lt;dhowells@redhat.com&gt; # afs
</content>
</entry>
</feed>
