Commit 0163916f1db7f345963dad1af78b7628c759c6ee
Exists in
master
and in
4 other branches
Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd
* '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
Showing 2 changed files Side-by-side Diff
fs/exofs/dir.c
... | ... | @@ -608,7 +608,7 @@ |
608 | 608 | de->inode_no = cpu_to_le64(parent->i_ino); |
609 | 609 | memcpy(de->name, PARENT_DIR, sizeof(PARENT_DIR)); |
610 | 610 | exofs_set_de_type(de, inode); |
611 | - kunmap_atomic(page, KM_USER0); | |
611 | + kunmap_atomic(kaddr, KM_USER0); | |
612 | 612 | err = exofs_commit_chunk(page, 0, chunk_size); |
613 | 613 | fail: |
614 | 614 | page_cache_release(page); |
fs/exofs/inode.c
... | ... | @@ -755,6 +755,21 @@ |
755 | 755 | return ret; |
756 | 756 | } |
757 | 757 | |
758 | +static int exofs_releasepage(struct page *page, gfp_t gfp) | |
759 | +{ | |
760 | + EXOFS_DBGMSG("page 0x%lx\n", page->index); | |
761 | + WARN_ON(1); | |
762 | + return try_to_free_buffers(page); | |
763 | +} | |
764 | + | |
765 | +static void exofs_invalidatepage(struct page *page, unsigned long offset) | |
766 | +{ | |
767 | + EXOFS_DBGMSG("page_has_buffers=>%d\n", page_has_buffers(page)); | |
768 | + WARN_ON(1); | |
769 | + | |
770 | + block_invalidatepage(page, offset); | |
771 | +} | |
772 | + | |
758 | 773 | const struct address_space_operations exofs_aops = { |
759 | 774 | .readpage = exofs_readpage, |
760 | 775 | .readpages = exofs_readpages, |
... | ... | @@ -762,6 +777,21 @@ |
762 | 777 | .writepages = exofs_writepages, |
763 | 778 | .write_begin = exofs_write_begin_export, |
764 | 779 | .write_end = exofs_write_end, |
780 | + .releasepage = exofs_releasepage, | |
781 | + .set_page_dirty = __set_page_dirty_nobuffers, | |
782 | + .invalidatepage = exofs_invalidatepage, | |
783 | + | |
784 | + /* Not implemented Yet */ | |
785 | + .bmap = NULL, /* TODO: use osd's OSD_ACT_READ_MAP */ | |
786 | + .direct_IO = NULL, /* TODO: Should be trivial to do */ | |
787 | + | |
788 | + /* With these NULL has special meaning or default is not exported */ | |
789 | + .sync_page = NULL, | |
790 | + .get_xip_mem = NULL, | |
791 | + .migratepage = NULL, | |
792 | + .launder_page = NULL, | |
793 | + .is_partially_uptodate = NULL, | |
794 | + .error_remove_page = NULL, | |
765 | 795 | }; |
766 | 796 | |
767 | 797 | /****************************************************************************** |