struct inode *inode;
        struct logfs_transaction *ta;
        unsigned long alias_map[LOGFS_BLOCK_FACTOR / BITS_PER_LONG];
-       struct logfs_block_ops *ops;
+       const struct logfs_block_ops *ops;
        int full;
        int partial;
        int reserved_bytes;
 int get_page_reserve(struct inode *inode, struct page *page);
 void logfs_get_wblocks(struct super_block *sb, struct page *page, int lock);
 void logfs_put_wblocks(struct super_block *sb, struct page *page, int lock);
-extern struct logfs_block_ops indirect_block_ops;
+extern const struct logfs_block_ops indirect_block_ops;
 
 /* segment.c */
 int logfs_erase_segment(struct super_block *sb, u32 ofs, int ensure_erase);
 
 }
 
 
-static struct logfs_block_ops inode_block_ops = {
+static const struct logfs_block_ops inode_block_ops = {
        .write_block = inode_write_block,
        .free_block = inode_free_block,
        .write_alias = inode_write_alias,
 };
 
-struct logfs_block_ops indirect_block_ops = {
+const struct logfs_block_ops indirect_block_ops = {
        .write_block = indirect_write_block,
        .free_block = indirect_free_block,
        .write_alias = indirect_write_alias,
 
        return 0;
 }
 
-static struct logfs_block_ops btree_block_ops = {
+static const struct logfs_block_ops btree_block_ops = {
        .write_block    = btree_write_block,
        .free_block     = __free_block,
        .write_alias    = btree_write_alias,