.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * QNX4 file system, Linux implementation. |
---|
3 | 4 | * |
---|
.. | .. |
---|
28 | 29 | static const struct super_operations qnx4_sops; |
---|
29 | 30 | |
---|
30 | 31 | static struct inode *qnx4_alloc_inode(struct super_block *sb); |
---|
31 | | -static void qnx4_destroy_inode(struct inode *inode); |
---|
| 32 | +static void qnx4_free_inode(struct inode *inode); |
---|
32 | 33 | static int qnx4_remount(struct super_block *sb, int *flags, char *data); |
---|
33 | 34 | static int qnx4_statfs(struct dentry *, struct kstatfs *); |
---|
34 | 35 | |
---|
35 | 36 | static const struct super_operations qnx4_sops = |
---|
36 | 37 | { |
---|
37 | 38 | .alloc_inode = qnx4_alloc_inode, |
---|
38 | | - .destroy_inode = qnx4_destroy_inode, |
---|
| 39 | + .free_inode = qnx4_free_inode, |
---|
39 | 40 | .statfs = qnx4_statfs, |
---|
40 | 41 | .remount_fs = qnx4_remount, |
---|
41 | 42 | }; |
---|
.. | .. |
---|
136 | 137 | buf->f_bfree = qnx4_count_free_blocks(sb); |
---|
137 | 138 | buf->f_bavail = buf->f_bfree; |
---|
138 | 139 | buf->f_namelen = QNX4_NAME_MAX; |
---|
139 | | - buf->f_fsid.val[0] = (u32)id; |
---|
140 | | - buf->f_fsid.val[1] = (u32)(id >> 32); |
---|
| 140 | + buf->f_fsid = u64_to_fsid(id); |
---|
141 | 141 | |
---|
142 | 142 | return 0; |
---|
143 | 143 | } |
---|
.. | .. |
---|
200 | 200 | s->s_op = &qnx4_sops; |
---|
201 | 201 | s->s_magic = QNX4_SUPER_MAGIC; |
---|
202 | 202 | s->s_flags |= SB_RDONLY; /* Yup, read-only yet */ |
---|
| 203 | + s->s_time_min = 0; |
---|
| 204 | + s->s_time_max = U32_MAX; |
---|
203 | 205 | |
---|
204 | 206 | /* Check the superblock signature. Since the qnx4 code is |
---|
205 | 207 | dangerous, we should leave as quickly as possible |
---|
.. | .. |
---|
342 | 344 | return &ei->vfs_inode; |
---|
343 | 345 | } |
---|
344 | 346 | |
---|
345 | | -static void qnx4_i_callback(struct rcu_head *head) |
---|
| 347 | +static void qnx4_free_inode(struct inode *inode) |
---|
346 | 348 | { |
---|
347 | | - struct inode *inode = container_of(head, struct inode, i_rcu); |
---|
348 | 349 | kmem_cache_free(qnx4_inode_cachep, qnx4_i(inode)); |
---|
349 | | -} |
---|
350 | | - |
---|
351 | | -static void qnx4_destroy_inode(struct inode *inode) |
---|
352 | | -{ |
---|
353 | | - call_rcu(&inode->i_rcu, qnx4_i_callback); |
---|
354 | 350 | } |
---|
355 | 351 | |
---|
356 | 352 | static void init_once(void *foo) |
---|
.. | .. |
---|
424 | 420 | module_init(init_qnx4_fs) |
---|
425 | 421 | module_exit(exit_qnx4_fs) |
---|
426 | 422 | MODULE_LICENSE("GPL"); |
---|
| 423 | +MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY); |
---|
427 | 424 | |
---|