Commit 185d3490 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jan Kara
Browse files

udf: stop using write_cache_pages



Stop using the obsolete write_cache_pages and use writeback_iter directly.
Use the chance to refactor the inacb writeback code to not have a separate
writeback helper.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20250711081036.564232-1-hch@lst.de
parent a099b09a
Loading
Loading
Loading
Loading
+16 −12
Original line number Diff line number Diff line
@@ -181,19 +181,23 @@ static void udf_write_failed(struct address_space *mapping, loff_t to)
	}
}

static int udf_adinicb_writepage(struct folio *folio,
				 struct writeback_control *wbc, void *data)
static int udf_adinicb_writepages(struct address_space *mapping,
		      struct writeback_control *wbc)
{
	struct inode *inode = folio->mapping->host;
	struct inode *inode = mapping->host;
	struct udf_inode_info *iinfo = UDF_I(inode);
	struct folio *folio = NULL;
	int error = 0;

	while ((folio = writeback_iter(mapping, wbc, folio, &error))) {
		BUG_ON(!folio_test_locked(folio));
		BUG_ON(folio->index != 0);
	memcpy_from_file_folio(iinfo->i_data + iinfo->i_lenEAttr, folio, 0,
		       i_size_read(inode));
		memcpy_from_file_folio(iinfo->i_data + iinfo->i_lenEAttr, folio,
				0, i_size_read(inode));
		folio_unlock(folio);
	mark_inode_dirty(inode);
	}

	mark_inode_dirty(inode);
	return 0;
}

@@ -203,9 +207,9 @@ static int udf_writepages(struct address_space *mapping,
	struct inode *inode = mapping->host;
	struct udf_inode_info *iinfo = UDF_I(inode);

	if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB)
	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB)
		return udf_adinicb_writepages(mapping, wbc);
	return mpage_writepages(mapping, wbc, udf_get_block_wb);
	return write_cache_pages(mapping, wbc, udf_adinicb_writepage, NULL);
}

static void udf_adinicb_read_folio(struct folio *folio)