Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 200b0700 authored by Boaz Harrosh's avatar Boaz Harrosh
Browse files

exofs: Add default address_space_operations



All vectors of address_space_operations should be initialized
by the filesystem. Add the missing parts.

This is actually an optimization, by using
__set_page_dirty_nobuffers. The default, in case of NULL,
would be __set_page_dirty_buffers which has these extar if(s).

.releasepage && .invalidatepage should both not be called
because page_private() is NULL in exofs. Put a WARN_ON if
they are called, to indicate the Kernel has changed in this
regard, if when it does.

Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
parent e40152ee
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -755,6 +755,21 @@ static int exofs_write_end(struct file *file, struct address_space *mapping,
	return ret;
}

static int exofs_releasepage(struct page *page, gfp_t gfp)
{
	EXOFS_DBGMSG("page 0x%lx\n", page->index);
	WARN_ON(1);
	return try_to_free_buffers(page);
}

static void exofs_invalidatepage(struct page *page, unsigned long offset)
{
	EXOFS_DBGMSG("page_has_buffers=>%d\n", page_has_buffers(page));
	WARN_ON(1);

	block_invalidatepage(page, offset);
}

const struct address_space_operations exofs_aops = {
	.readpage	= exofs_readpage,
	.readpages	= exofs_readpages,
@@ -762,6 +777,21 @@ const struct address_space_operations exofs_aops = {
	.writepages	= exofs_writepages,
	.write_begin	= exofs_write_begin_export,
	.write_end	= exofs_write_end,
	.releasepage	= exofs_releasepage,
	.set_page_dirty	= __set_page_dirty_nobuffers,
	.invalidatepage = exofs_invalidatepage,

	/* Not implemented Yet */
	.bmap		= NULL, /* TODO: use osd's OSD_ACT_READ_MAP */
	.direct_IO	= NULL, /* TODO: Should be trivial to do */

	/* With these NULL has special meaning or default is not exported */
	.sync_page	= NULL,
	.get_xip_mem	= NULL,
	.migratepage	= NULL,
	.launder_page	= NULL,
	.is_partially_uptodate = NULL,
	.error_remove_page = NULL,
};

/******************************************************************************