Commit 4fdc08d4 authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle)
Browse files

block: Convert read_part_sector() to use a folio



This relatively straightforward converion saves a call to compound_head()
hidden inside put_page().

Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
parent 069fc464
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -24,13 +24,13 @@ struct parsed_partitions {
};

typedef struct {
	struct page *v;
	struct folio *v;
} Sector;

void *read_part_sector(struct parsed_partitions *state, sector_t n, Sector *p);
static inline void put_dev_sector(Sector p)
{
	put_page(p.v);
	folio_put(p.v);
}

static inline void
+5 −5
Original line number Diff line number Diff line
@@ -705,19 +705,19 @@ EXPORT_SYMBOL_GPL(bdev_disk_changed);
void *read_part_sector(struct parsed_partitions *state, sector_t n, Sector *p)
{
	struct address_space *mapping = state->disk->part0->bd_inode->i_mapping;
	struct page *page;
	struct folio *folio;

	if (n >= get_capacity(state->disk)) {
		state->access_beyond_eod = true;
		goto out;
	}

	page = read_mapping_page(mapping, n >> PAGE_SECTORS_SHIFT, NULL);
	if (IS_ERR(page))
	folio = read_mapping_folio(mapping, n >> PAGE_SECTORS_SHIFT, NULL);
	if (IS_ERR(folio))
		goto out;

	p->v = page;
	return page_address(page) + offset_in_page(n * SECTOR_SIZE);
	p->v = folio;
	return folio_address(folio) + offset_in_folio(folio, n * SECTOR_SIZE);
out:
	p->v = NULL;
	return NULL;