Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 24 May 2010 14:57:41 +0000 (07:57 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 24 May 2010 14:57:41 +0000 (07:57 -0700)
* 'for-linus' of git://git.open-osd.org/linux-open-osd:
  exofs: confusion between kmap() and kmap_atomic() api
  exofs: Add default address_space_operations

fs/exofs/dir.c
fs/exofs/inode.c

index 4cfab1c..d91e9d8 100644 (file)
@@ -608,7 +608,7 @@ int exofs_make_empty(struct inode *inode, struct inode *parent)
        de->inode_no = cpu_to_le64(parent->i_ino);
        memcpy(de->name, PARENT_DIR, sizeof(PARENT_DIR));
        exofs_set_de_type(de, inode);
-       kunmap_atomic(page, KM_USER0);
+       kunmap_atomic(kaddr, KM_USER0);
        err = exofs_commit_chunk(page, 0, chunk_size);
 fail:
        page_cache_release(page);
index d7c6afa..4bb6ef8 100644 (file)
@@ -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,
 };
 
 /******************************************************************************