.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * linux/fs/ufs/super.c |
---|
3 | 4 | * |
---|
.. | .. |
---|
842 | 843 | |
---|
843 | 844 | sb->s_maxbytes = MAX_LFS_FILESIZE; |
---|
844 | 845 | |
---|
| 846 | + sb->s_time_gran = NSEC_PER_SEC; |
---|
| 847 | + sb->s_time_min = S32_MIN; |
---|
| 848 | + sb->s_time_max = S32_MAX; |
---|
| 849 | + |
---|
845 | 850 | switch (sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) { |
---|
846 | 851 | case UFS_MOUNT_UFSTYPE_44BSD: |
---|
847 | 852 | UFSD("ufstype=44bsd\n"); |
---|
.. | .. |
---|
860 | 865 | uspi->s_fshift = 9; |
---|
861 | 866 | uspi->s_sbsize = super_block_size = 1536; |
---|
862 | 867 | uspi->s_sbbase = 0; |
---|
| 868 | + sb->s_time_gran = 1; |
---|
| 869 | + sb->s_time_min = S64_MIN; |
---|
| 870 | + sb->s_time_max = S64_MAX; |
---|
863 | 871 | flags |= UFS_TYPE_UFS2 | UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD; |
---|
864 | 872 | break; |
---|
865 | 873 | |
---|
.. | .. |
---|
1406 | 1414 | struct super_block *sb = dentry->d_sb; |
---|
1407 | 1415 | struct ufs_sb_private_info *uspi= UFS_SB(sb)->s_uspi; |
---|
1408 | 1416 | unsigned flags = UFS_SB(sb)->s_flags; |
---|
1409 | | - struct ufs_super_block_third *usb3; |
---|
1410 | 1417 | u64 id = huge_encode_dev(sb->s_bdev->bd_dev); |
---|
1411 | 1418 | |
---|
1412 | 1419 | mutex_lock(&UFS_SB(sb)->s_lock); |
---|
1413 | | - usb3 = ubh_get_usb_third(uspi); |
---|
1414 | 1420 | |
---|
1415 | 1421 | if ((flags & UFS_TYPE_MASK) == UFS_TYPE_UFS2) |
---|
1416 | 1422 | buf->f_type = UFS2_MAGIC; |
---|
.. | .. |
---|
1425 | 1431 | ? (buf->f_bfree - uspi->s_root_blocks) : 0; |
---|
1426 | 1432 | buf->f_files = uspi->s_ncg * uspi->s_ipg; |
---|
1427 | 1433 | 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); |
---|
1430 | 1435 | |
---|
1431 | 1436 | mutex_unlock(&UFS_SB(sb)->s_lock); |
---|
1432 | 1437 | |
---|
.. | .. |
---|
1449 | 1454 | return &ei->vfs_inode; |
---|
1450 | 1455 | } |
---|
1451 | 1456 | |
---|
1452 | | -static void ufs_i_callback(struct rcu_head *head) |
---|
| 1457 | +static void ufs_free_in_core_inode(struct inode *inode) |
---|
1453 | 1458 | { |
---|
1454 | | - struct inode *inode = container_of(head, struct inode, i_rcu); |
---|
1455 | 1459 | 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); |
---|
1461 | 1460 | } |
---|
1462 | 1461 | |
---|
1463 | 1462 | static void init_once(void *foo) |
---|
.. | .. |
---|
1494 | 1493 | |
---|
1495 | 1494 | static const struct super_operations ufs_super_ops = { |
---|
1496 | 1495 | .alloc_inode = ufs_alloc_inode, |
---|
1497 | | - .destroy_inode = ufs_destroy_inode, |
---|
| 1496 | + .free_inode = ufs_free_in_core_inode, |
---|
1498 | 1497 | .write_inode = ufs_write_inode, |
---|
1499 | 1498 | .evict_inode = ufs_evict_inode, |
---|
1500 | 1499 | .put_super = ufs_put_super, |
---|
.. | .. |
---|
1543 | 1542 | module_init(init_ufs_fs) |
---|
1544 | 1543 | module_exit(exit_ufs_fs) |
---|
1545 | 1544 | MODULE_LICENSE("GPL"); |
---|
| 1545 | +MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY); |
---|