| .. | .. |
|---|
| 13 | 13 | #include <linux/slab.h> |
|---|
| 14 | 14 | #include <linux/buffer_head.h> |
|---|
| 15 | 15 | #include <linux/vfs.h> |
|---|
| 16 | +#include <linux/blkdev.h> |
|---|
| 16 | 17 | |
|---|
| 17 | 18 | #include "efs.h" |
|---|
| 18 | 19 | #include <linux/efs_vh.h> |
|---|
| .. | .. |
|---|
| 74 | 75 | return &ei->vfs_inode; |
|---|
| 75 | 76 | } |
|---|
| 76 | 77 | |
|---|
| 77 | | -static void efs_i_callback(struct rcu_head *head) |
|---|
| 78 | +static void efs_free_inode(struct inode *inode) |
|---|
| 78 | 79 | { |
|---|
| 79 | | - struct inode *inode = container_of(head, struct inode, i_rcu); |
|---|
| 80 | 80 | kmem_cache_free(efs_inode_cachep, INODE_INFO(inode)); |
|---|
| 81 | | -} |
|---|
| 82 | | - |
|---|
| 83 | | -static void efs_destroy_inode(struct inode *inode) |
|---|
| 84 | | -{ |
|---|
| 85 | | - call_rcu(&inode->i_rcu, efs_i_callback); |
|---|
| 86 | 81 | } |
|---|
| 87 | 82 | |
|---|
| 88 | 83 | static void init_once(void *foo) |
|---|
| .. | .. |
|---|
| 122 | 117 | |
|---|
| 123 | 118 | static const struct super_operations efs_superblock_operations = { |
|---|
| 124 | 119 | .alloc_inode = efs_alloc_inode, |
|---|
| 125 | | - .destroy_inode = efs_destroy_inode, |
|---|
| 120 | + .free_inode = efs_free_inode, |
|---|
| 126 | 121 | .statfs = efs_statfs, |
|---|
| 127 | 122 | .remount_fs = efs_remount, |
|---|
| 128 | 123 | }; |
|---|
| .. | .. |
|---|
| 263 | 258 | if (!sb) |
|---|
| 264 | 259 | return -ENOMEM; |
|---|
| 265 | 260 | s->s_fs_info = sb; |
|---|
| 261 | + s->s_time_min = 0; |
|---|
| 262 | + s->s_time_max = U32_MAX; |
|---|
| 266 | 263 | |
|---|
| 267 | 264 | s->s_magic = EFS_SUPER_MAGIC; |
|---|
| 268 | 265 | if (!sb_set_blocksize(s, EFS_BLOCKSIZE)) { |
|---|
| .. | .. |
|---|
| 345 | 342 | sbi->inode_blocks * |
|---|
| 346 | 343 | (EFS_BLOCKSIZE / sizeof(struct efs_dinode)); |
|---|
| 347 | 344 | buf->f_ffree = sbi->inode_free; /* free inodes */ |
|---|
| 348 | | - buf->f_fsid.val[0] = (u32)id; |
|---|
| 349 | | - buf->f_fsid.val[1] = (u32)(id >> 32); |
|---|
| 345 | + buf->f_fsid = u64_to_fsid(id); |
|---|
| 350 | 346 | buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */ |
|---|
| 351 | 347 | |
|---|
| 352 | 348 | return 0; |
|---|