hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/fs/ufs/super.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * linux/fs/ufs/super.c
34 *
....@@ -842,6 +843,10 @@
842843
843844 sb->s_maxbytes = MAX_LFS_FILESIZE;
844845
846
+ sb->s_time_gran = NSEC_PER_SEC;
847
+ sb->s_time_min = S32_MIN;
848
+ sb->s_time_max = S32_MAX;
849
+
845850 switch (sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) {
846851 case UFS_MOUNT_UFSTYPE_44BSD:
847852 UFSD("ufstype=44bsd\n");
....@@ -860,6 +865,9 @@
860865 uspi->s_fshift = 9;
861866 uspi->s_sbsize = super_block_size = 1536;
862867 uspi->s_sbbase = 0;
868
+ sb->s_time_gran = 1;
869
+ sb->s_time_min = S64_MIN;
870
+ sb->s_time_max = S64_MAX;
863871 flags |= UFS_TYPE_UFS2 | UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
864872 break;
865873
....@@ -1406,11 +1414,9 @@
14061414 struct super_block *sb = dentry->d_sb;
14071415 struct ufs_sb_private_info *uspi= UFS_SB(sb)->s_uspi;
14081416 unsigned flags = UFS_SB(sb)->s_flags;
1409
- struct ufs_super_block_third *usb3;
14101417 u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
14111418
14121419 mutex_lock(&UFS_SB(sb)->s_lock);
1413
- usb3 = ubh_get_usb_third(uspi);
14141420
14151421 if ((flags & UFS_TYPE_MASK) == UFS_TYPE_UFS2)
14161422 buf->f_type = UFS2_MAGIC;
....@@ -1425,8 +1431,7 @@
14251431 ? (buf->f_bfree - uspi->s_root_blocks) : 0;
14261432 buf->f_files = uspi->s_ncg * uspi->s_ipg;
14271433 buf->f_namelen = UFS_MAXNAMLEN;
1428
- buf->f_fsid.val[0] = (u32)id;
1429
- buf->f_fsid.val[1] = (u32)(id >> 32);
1434
+ buf->f_fsid = u64_to_fsid(id);
14301435
14311436 mutex_unlock(&UFS_SB(sb)->s_lock);
14321437
....@@ -1449,15 +1454,9 @@
14491454 return &ei->vfs_inode;
14501455 }
14511456
1452
-static void ufs_i_callback(struct rcu_head *head)
1457
+static void ufs_free_in_core_inode(struct inode *inode)
14531458 {
1454
- struct inode *inode = container_of(head, struct inode, i_rcu);
14551459 kmem_cache_free(ufs_inode_cachep, UFS_I(inode));
1456
-}
1457
-
1458
-static void ufs_destroy_inode(struct inode *inode)
1459
-{
1460
- call_rcu(&inode->i_rcu, ufs_i_callback);
14611460 }
14621461
14631462 static void init_once(void *foo)
....@@ -1494,7 +1493,7 @@
14941493
14951494 static const struct super_operations ufs_super_ops = {
14961495 .alloc_inode = ufs_alloc_inode,
1497
- .destroy_inode = ufs_destroy_inode,
1496
+ .free_inode = ufs_free_in_core_inode,
14981497 .write_inode = ufs_write_inode,
14991498 .evict_inode = ufs_evict_inode,
15001499 .put_super = ufs_put_super,
....@@ -1543,3 +1542,4 @@
15431542 module_init(init_ufs_fs)
15441543 module_exit(exit_ufs_fs)
15451544 MODULE_LICENSE("GPL");
1545
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);