mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
BACKPORT: [PATCH] reduce boilerplate in fsid handling
Get rid of boilerplate in most of ->statfs() instances... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> [cyberknight777: backport to 4.14] Signed-off-by: Cyber Knight <cyberknight755@gmail.com> Signed-off-by: azrim <mirzaspc@gmail.com>
This commit is contained in:
parent
48343fc6f0
commit
9f3c1a55bd
@ -269,8 +269,7 @@ static int v9fs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail = rs.bavail;
|
||||
buf->f_files = rs.files;
|
||||
buf->f_ffree = rs.ffree;
|
||||
buf->f_fsid.val[0] = rs.fsid & 0xFFFFFFFFUL;
|
||||
buf->f_fsid.val[1] = (rs.fsid >> 32) & 0xFFFFFFFFUL;
|
||||
buf->f_fsid = u64_to_fsid(rs.fsid);
|
||||
buf->f_namelen = rs.namelen;
|
||||
}
|
||||
if (res != -ENOSYS)
|
||||
|
@ -231,8 +231,7 @@ static int adfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail =
|
||||
buf->f_bfree = adfs_map_free(sb);
|
||||
buf->f_ffree = (long)(buf->f_bfree * buf->f_files) / (long)buf->f_blocks;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -618,8 +618,7 @@ affs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_blocks = AFFS_SB(sb)->s_partition_size - AFFS_SB(sb)->s_reserved;
|
||||
buf->f_bfree = free;
|
||||
buf->f_bavail = free;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = AFFSNAMEMAX;
|
||||
return 0;
|
||||
}
|
||||
|
@ -968,8 +968,7 @@ befs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail = buf->f_bfree;
|
||||
buf->f_files = 0; /* UNKNOWN */
|
||||
buf->f_ffree = 0; /* UNKNOWN */
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = BEFS_NAME_LEN;
|
||||
|
||||
befs_debug(sb, "<--- %s", __func__);
|
||||
|
@ -230,8 +230,7 @@ static int bfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bfree = buf->f_bavail = info->si_freeb;
|
||||
buf->f_files = info->si_lasti + 1 - BFS_ROOT_INO;
|
||||
buf->f_ffree = info->si_freei;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = BFS_NAMELEN;
|
||||
return 0;
|
||||
}
|
||||
|
@ -360,8 +360,7 @@ static int cramfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail = 0;
|
||||
buf->f_files = CRAMFS_SB(sb)->files;
|
||||
buf->f_ffree = 0;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = CRAMFS_MAXPATHLEN;
|
||||
return 0;
|
||||
}
|
||||
|
@ -345,8 +345,7 @@ static int efs_statfs(struct dentry *dentry, struct kstatfs *buf) {
|
||||
sbi->inode_blocks *
|
||||
(EFS_BLOCKSIZE / sizeof(struct efs_dinode));
|
||||
buf->f_ffree = sbi->inode_free; /* free inodes */
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */
|
||||
|
||||
return 0;
|
||||
|
@ -90,8 +90,7 @@ static int exfat_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_blocks = sbi->num_clusters - 2; /* clu 0 & 1 */
|
||||
buf->f_bfree = buf->f_blocks - sbi->used_clusters;
|
||||
buf->f_bavail = buf->f_bfree;
|
||||
buf->f_fsid.val[0] = (unsigned int)id;
|
||||
buf->f_fsid.val[1] = (unsigned int)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
/* Unicode utf16 255 characters */
|
||||
buf->f_namelen = EXFAT_MAX_FILE_LEN * NLS_MAX_CHARSET_SIZE;
|
||||
return 0;
|
||||
|
@ -1475,8 +1475,7 @@ static int ext2_statfs (struct dentry * dentry, struct kstatfs * buf)
|
||||
buf->f_namelen = EXT2_NAME_LEN;
|
||||
fsid = le64_to_cpup((void *)es->s_uuid) ^
|
||||
le64_to_cpup((void *)es->s_uuid + sizeof(u64));
|
||||
buf->f_fsid.val[0] = fsid & 0xFFFFFFFFUL;
|
||||
buf->f_fsid.val[1] = (fsid >> 32) & 0xFFFFFFFFUL;
|
||||
buf->f_fsid = u64_to_fsid(fsid);
|
||||
spin_unlock(&sbi->s_lock);
|
||||
return 0;
|
||||
}
|
||||
|
@ -5669,8 +5669,7 @@ static int ext4_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_namelen = EXT4_NAME_LEN;
|
||||
fsid = le64_to_cpup((void *)es->s_uuid) ^
|
||||
le64_to_cpup((void *)es->s_uuid + sizeof(u64));
|
||||
buf->f_fsid.val[0] = fsid & 0xFFFFFFFFUL;
|
||||
buf->f_fsid.val[1] = (fsid >> 32) & 0xFFFFFFFFUL;
|
||||
buf->f_fsid = u64_to_fsid(fsid);
|
||||
|
||||
#ifdef CONFIG_QUOTA
|
||||
if (ext4_test_inode_flag(dentry->d_inode, EXT4_INODE_PROJINHERIT) &&
|
||||
|
@ -1434,8 +1434,7 @@ static int f2fs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
}
|
||||
|
||||
buf->f_namelen = F2FS_NAME_LEN;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
#ifdef CONFIG_QUOTA
|
||||
if (is_inode_flag_set(dentry->d_inode, FI_PROJ_INHERIT) &&
|
||||
|
@ -827,8 +827,7 @@ static int fat_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_blocks = sbi->max_cluster - FAT_START_ENT;
|
||||
buf->f_bfree = sbi->free_clusters;
|
||||
buf->f_bavail = sbi->free_clusters;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen =
|
||||
(sbi->options.isvfat ? FAT_LFN_LEN : 12) * NLS_MAX_CHARSET_SIZE;
|
||||
|
||||
|
@ -104,8 +104,7 @@ static int hfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail = buf->f_bfree;
|
||||
buf->f_files = HFS_SB(sb)->fs_ablocks;
|
||||
buf->f_ffree = HFS_SB(sb)->free_ablocks;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = HFS_NAMELEN;
|
||||
|
||||
return 0;
|
||||
|
@ -319,8 +319,7 @@ static int hfsplus_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail = buf->f_bfree;
|
||||
buf->f_files = 0xFFFFFFFF;
|
||||
buf->f_ffree = 0xFFFFFFFF - sbi->next_cnid;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = HFSPLUS_MAX_STRLEN;
|
||||
|
||||
return 0;
|
||||
|
@ -191,8 +191,7 @@ static int hpfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail = sbi->sb_n_free;
|
||||
buf->f_files = sbi->sb_dirband_size / 4;
|
||||
buf->f_ffree = hpfs_get_free_dnodes(s);
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = 254;
|
||||
|
||||
hpfs_unlock(s);
|
||||
|
@ -1040,8 +1040,7 @@ static int isofs_statfs (struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail = 0;
|
||||
buf->f_files = ISOFS_SB(sb)->s_ninodes;
|
||||
buf->f_ffree = 0;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
buf->f_namelen = NAME_MAX;
|
||||
return 0;
|
||||
}
|
||||
|
@ -384,8 +384,7 @@ static int minix_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_files = sbi->s_ninodes;
|
||||
buf->f_ffree = minix_count_free_inodes(sb);
|
||||
buf->f_namelen = sbi->s_namelen;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -664,8 +664,7 @@ static int nilfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_files = nmaxinodes;
|
||||
buf->f_ffree = nfreeinodes;
|
||||
buf->f_namelen = NILFS_NAME_LEN;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -2657,8 +2657,7 @@ static int ntfs_statfs(struct dentry *dentry, struct kstatfs *sfs)
|
||||
* the least significant 32-bits in f_fsid[0] and the most significant
|
||||
* 32-bits in f_fsid[1].
|
||||
*/
|
||||
sfs->f_fsid.val[0] = vol->serial_no & 0xffffffff;
|
||||
sfs->f_fsid.val[1] = (vol->serial_no >> 32) & 0xffffffff;
|
||||
sfs->f_fsid = u64_to_fsid(vol->serial_no);
|
||||
/* Maximum length of filenames. */
|
||||
sfs->f_namelen = NTFS_MAX_NAME_LEN;
|
||||
return 0;
|
||||
|
@ -282,8 +282,7 @@ static int omfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_blocks = sbi->s_num_blocks;
|
||||
buf->f_files = sbi->s_num_blocks;
|
||||
buf->f_namelen = OMFS_NAMELEN;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
buf->f_bfree = buf->f_bavail = buf->f_ffree =
|
||||
omfs_count_free(s);
|
||||
|
@ -136,8 +136,7 @@ static int qnx4_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bfree = qnx4_count_free_blocks(sb);
|
||||
buf->f_bavail = buf->f_bfree;
|
||||
buf->f_namelen = QNX4_NAME_MAX;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -166,8 +166,7 @@ static int qnx6_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_ffree = fs32_to_cpu(sbi, sbi->sb->sb_free_inodes);
|
||||
buf->f_bavail = buf->f_bfree;
|
||||
buf->f_namelen = QNX6_LONG_NAME_MAX;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -440,8 +440,7 @@ static int romfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bfree = buf->f_bavail = buf->f_ffree;
|
||||
buf->f_blocks =
|
||||
(romfs_maxsize(dentry->d_sb) + ROMBSIZE - 1) >> ROMBSBITS;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -364,8 +364,7 @@ static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_files = msblk->inodes;
|
||||
buf->f_ffree = 0;
|
||||
buf->f_namelen = SQUASHFS_NAME_LEN;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -98,8 +98,7 @@ static int sysv_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_files = sbi->s_ninodes;
|
||||
buf->f_ffree = sysv_count_free_inodes(sb);
|
||||
buf->f_namelen = SYSV_NAMELEN;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2395,8 +2395,7 @@ static int udf_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
+ buf->f_bfree;
|
||||
buf->f_ffree = buf->f_bfree;
|
||||
buf->f_namelen = UDF_NAME_LEN;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1422,8 +1422,7 @@ static int ufs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
? (buf->f_bfree - uspi->s_root_blocks) : 0;
|
||||
buf->f_files = uspi->s_ncg * uspi->s_ipg;
|
||||
buf->f_namelen = UFS_MAXNAMLEN;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_fsid = u64_to_fsid(id);
|
||||
|
||||
mutex_unlock(&UFS_SB(sb)->s_lock);
|
||||
|
||||
|
@ -1116,8 +1116,7 @@ xfs_fs_statfs(
|
||||
statp->f_namelen = MAXNAMELEN - 1;
|
||||
|
||||
id = huge_encode_dev(mp->m_ddev_targp->bt_dev);
|
||||
statp->f_fsid.val[0] = (u32)id;
|
||||
statp->f_fsid.val[1] = (u32)(id >> 32);
|
||||
statp->f_fsid = u64_to_fsid(id);
|
||||
|
||||
icount = percpu_counter_sum(&mp->m_icount);
|
||||
ifree = percpu_counter_sum(&mp->m_ifree);
|
||||
|
@ -41,4 +41,9 @@ struct kstatfs {
|
||||
#define ST_NODIRATIME 0x0800 /* do not update directory access times */
|
||||
#define ST_RELATIME 0x1000 /* update atime relative to mtime/ctime */
|
||||
|
||||
static inline __kernel_fsid_t u64_to_fsid(u64 v)
|
||||
{
|
||||
return (__kernel_fsid_t){.val = {(u32)v, (u32)(v>>32)}};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user