for-6.19-rc7-tag
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE8rQSAMVO+zA4DBdWxWXV+ddtWDsFAml7a7AACgkQxWXV+ddt WDt5pA//RX16rimnWzNzWZOWAAKhwrhJuand4Bn3qBVLGPRTPgPxiEVk5eTiMAy7 gZfiT6R0AhAlNHeT55D9AAYnrAE0f/QObhKEUuJgFQPMt8EOgfmjUJ54Eilhz5R1 18tyN4H6WDm6ckth8Pkwy/rcSKPYTlGbyv2te4q/LSXRNgOVVAL8fwMkXgV2mZca SW76xCoKjKXLgRbxihzI+TWSS8M9WRiX+qefL/apJ0Xzkt9e620uf8vkA3jEuMn9 6NhoXuqWpWb1c3TL7fdziGm2BTXqr9Sxh9KuyVA+182hs8SgXMza+k3Vc1aw+r1F WzWvxkqLAsybT4X5NdkKXNCdDStztO+OmS//c9+l/Hlo7jshMtIOAsdaFC8E45n4 50r0K4d7XNdHRukb5zg5i60TlnzJJLx7c7X4V1vc/vSV0oGafDuKn/73P4uBppEg rQYp0/Ed4KuxbiTneB7ZdPXoKo6H2jnQizo00v9OfE09wXjsRQDcxTsM8aVPqCpN 4xUcFdeYk76jmRouvH4RX6JcZk+VBSSqPE879JhR+Nb7szxYdtjXuFe0opX27Oil 30c/4qAW/ljd8gxpXizz4JMZOMrxJwICQ+S3FW55uKLgiuHXOWmMPlsVD+ksUB2z FMOa8n9jatDf+xEMI9Mjm61DyqMgQ47uSrPpb94rsDlutidCs8Q= =2Wjs -----END PGP SIGNATURE----- Merge tag 'for-6.19-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull btrfs fixes from David Sterba: - fix leaked folio refcount on s390x when using hw zlib compression acceleration - remove own threshold from ->writepages() which could collide with cgroup limits and lead to a deadlock when metadadata are not written because the amount is under the internal limit * tag 'for-6.19-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: btrfs: zlib: fix the folio leak on S390 hardware acceleration btrfs: do not strictly require dirty metadata threshold for metadata writepagesmaster
commit
e829083bc4
|
|
@ -498,28 +498,6 @@ static int btree_migrate_folio(struct address_space *mapping,
|
|||
#define btree_migrate_folio NULL
|
||||
#endif
|
||||
|
||||
static int btree_writepages(struct address_space *mapping,
|
||||
struct writeback_control *wbc)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (wbc->sync_mode == WB_SYNC_NONE) {
|
||||
struct btrfs_fs_info *fs_info;
|
||||
|
||||
if (wbc->for_kupdate)
|
||||
return 0;
|
||||
|
||||
fs_info = inode_to_fs_info(mapping->host);
|
||||
/* this is a bit racy, but that's ok */
|
||||
ret = __percpu_counter_compare(&fs_info->dirty_metadata_bytes,
|
||||
BTRFS_DIRTY_METADATA_THRESH,
|
||||
fs_info->dirty_metadata_batch);
|
||||
if (ret < 0)
|
||||
return 0;
|
||||
}
|
||||
return btree_write_cache_pages(mapping, wbc);
|
||||
}
|
||||
|
||||
static bool btree_release_folio(struct folio *folio, gfp_t gfp_flags)
|
||||
{
|
||||
if (folio_test_writeback(folio) || folio_test_dirty(folio))
|
||||
|
|
|
|||
|
|
@ -2286,8 +2286,7 @@ void btrfs_btree_wait_writeback_range(struct btrfs_fs_info *fs_info, u64 start,
|
|||
}
|
||||
}
|
||||
|
||||
int btree_write_cache_pages(struct address_space *mapping,
|
||||
struct writeback_control *wbc)
|
||||
int btree_writepages(struct address_space *mapping, struct writeback_control *wbc)
|
||||
{
|
||||
struct btrfs_eb_write_context ctx = { .wbc = wbc };
|
||||
struct btrfs_fs_info *fs_info = inode_to_fs_info(mapping->host);
|
||||
|
|
|
|||
|
|
@ -237,8 +237,7 @@ void extent_write_locked_range(struct inode *inode, const struct folio *locked_f
|
|||
u64 start, u64 end, struct writeback_control *wbc,
|
||||
bool pages_dirty);
|
||||
int btrfs_writepages(struct address_space *mapping, struct writeback_control *wbc);
|
||||
int btree_write_cache_pages(struct address_space *mapping,
|
||||
struct writeback_control *wbc);
|
||||
int btree_writepages(struct address_space *mapping, struct writeback_control *wbc);
|
||||
void btrfs_btree_wait_writeback_range(struct btrfs_fs_info *fs_info, u64 start, u64 end);
|
||||
void btrfs_readahead(struct readahead_control *rac);
|
||||
int set_folio_extent_mapped(struct folio *folio);
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ static int copy_data_into_buffer(struct address_space *mapping,
|
|||
data_in = kmap_local_folio(folio, offset);
|
||||
memcpy(workspace->buf + cur - filepos, data_in, copy_length);
|
||||
kunmap_local(data_in);
|
||||
folio_put(folio);
|
||||
cur += copy_length;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue