Skip to content

Commit

Permalink
exofs: Add default address_space_operations
Browse files Browse the repository at this point in the history
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: Boaz Harrosh <[email protected]>
  • Loading branch information
Boaz Harrosh committed May 17, 2010
1 parent e40152e commit 200b070
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions fs/exofs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -755,13 +755,43 @@ 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,
.writepage = exofs_writepage,
.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,
};

/******************************************************************************
Expand Down

0 comments on commit 200b070

Please sign in to comment.