hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/fs/efs/super.c
....@@ -13,6 +13,7 @@
1313 #include <linux/slab.h>
1414 #include <linux/buffer_head.h>
1515 #include <linux/vfs.h>
16
+#include <linux/blkdev.h>
1617
1718 #include "efs.h"
1819 #include <linux/efs_vh.h>
....@@ -74,15 +75,9 @@
7475 return &ei->vfs_inode;
7576 }
7677
77
-static void efs_i_callback(struct rcu_head *head)
78
+static void efs_free_inode(struct inode *inode)
7879 {
79
- struct inode *inode = container_of(head, struct inode, i_rcu);
8080 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);
8681 }
8782
8883 static void init_once(void *foo)
....@@ -122,7 +117,7 @@
122117
123118 static const struct super_operations efs_superblock_operations = {
124119 .alloc_inode = efs_alloc_inode,
125
- .destroy_inode = efs_destroy_inode,
120
+ .free_inode = efs_free_inode,
126121 .statfs = efs_statfs,
127122 .remount_fs = efs_remount,
128123 };
....@@ -263,6 +258,8 @@
263258 if (!sb)
264259 return -ENOMEM;
265260 s->s_fs_info = sb;
261
+ s->s_time_min = 0;
262
+ s->s_time_max = U32_MAX;
266263
267264 s->s_magic = EFS_SUPER_MAGIC;
268265 if (!sb_set_blocksize(s, EFS_BLOCKSIZE)) {
....@@ -345,8 +342,7 @@
345342 sbi->inode_blocks *
346343 (EFS_BLOCKSIZE / sizeof(struct efs_dinode));
347344 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);
350346 buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */
351347
352348 return 0;