[PATCH] reduce boilerplate in fsid handling
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 18 Sep 2020 20:45:50 +0000 (16:45 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 18 Sep 2020 20:45:50 +0000 (16:45 -0400)
Get rid of boilerplate in most of ->statfs()
instances...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
32 files changed:
fs/9p/vfs_super.c
fs/adfs/super.c
fs/affs/super.c
fs/befs/linuxvfs.c
fs/bfs/inode.c
fs/ceph/super.c
fs/cramfs/inode.c
fs/efs/super.c
fs/erofs/super.c
fs/exfat/super.c
fs/ext2/super.c
fs/ext4/super.c
fs/f2fs/super.c
fs/fat/inode.c
fs/hfs/super.c
fs/hfsplus/super.c
fs/hpfs/super.c
fs/isofs/inode.c
fs/minix/inode.c
fs/nilfs2/super.c
fs/ntfs/super.c
fs/omfs/inode.c
fs/qnx4/inode.c
fs/qnx6/inode.c
fs/romfs/super.c
fs/squashfs/super.c
fs/sysv/inode.c
fs/udf/super.c
fs/ufs/super.c
fs/xfs/xfs_super.c
fs/zonefs/super.c
include/linux/statfs.h

index 74df32be4c6a524f158991bfb1e6b8d0ddb341d1..124855b3324d7c544eae7fbbe60ff9bfa70c5fcf 100644 (file)
@@ -258,8 +258,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)
index d553bb5bc17abdd975a8272012bc71919221bf86..bdbd26e571ed37b0a3def3fb25ed70467f6350d1 100644 (file)
@@ -210,8 +210,7 @@ static int adfs_statfs(struct dentry *dentry, struct kstatfs *buf)
        buf->f_namelen = sbi->s_namelen;
        buf->f_bsize   = sb->s_blocksize;
        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;
 }
index 47107c6712a6134fb815066816a9e32389b8dfcd..890b44874f0f8eb8bb16e83b05b82af2d9619fba 100644 (file)
@@ -620,8 +620,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;
 }
index 2482032021cac7c1ca769b82da14bc3553b97dfd..c1ba13d19024e4beb625714dca473094d5092dcd 100644 (file)
@@ -963,8 +963,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__);
index f8ce1368218b2333106f460d6a021b2d5eb61ae6..3ac7611ef7ce2299c71ef5fdfab7075f37bb832c 100644 (file)
@@ -229,8 +229,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;
 }
index 7ec0e6d03d1038be079d1a1894d40e12b7d1f18c..cafb252a9d98ba71bd477af74b7244e956851347 100644 (file)
@@ -104,8 +104,7 @@ static int ceph_statfs(struct dentry *dentry, struct kstatfs *buf)
               le64_to_cpu(*((__le64 *)&monc->monmap->fsid + 1));
        mutex_unlock(&monc->mutex);
 
-       buf->f_fsid.val[0] = fsid & 0xffffffff;
-       buf->f_fsid.val[1] = fsid >> 32;
+       buf->f_fsid = u64_to_fsid(fsid);
 
        return 0;
 }
index 912308600d393da3fef8f1bb2dfb9e9a3dbda7e0..4b90cfd1ec36035e0ca24914fa35b0d8563a9b8b 100644 (file)
@@ -690,8 +690,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;
 }
index a4a945d0ac6a4234cbc9ec60ef8fc6003862f2ae..62b155b9366b8f9fb42587075329621b5da8fade 100644 (file)
@@ -342,8 +342,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;
index ddaa516c008af417e03f680e94741e82333570a3..744089ab134cf747061b37bb9eef4578da7f0773 100644 (file)
@@ -563,8 +563,7 @@ static int erofs_statfs(struct dentry *dentry, struct kstatfs *buf)
 
        buf->f_namelen = EROFS_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;
 }
 
index 3b6a1659892ffd6ee3a94f6aa0f8bfca65fba9ae..ea17e8ed50674dc3d659fd4475649001d105c279 100644 (file)
@@ -89,8 +89,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;
index dda860562ca346683d88b91e1be889dff6eef9e7..4911c59679bb18b6810da2ab3d77129b8d3e2fb6 100644 (file)
@@ -1455,8 +1455,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;
 }
index 0907f907c47d1f622e1c15bfacae9c10273ed179..eef0a7d81e0d6b7879682cf3797ec1ab5af0923d 100644 (file)
@@ -5787,8 +5787,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) &&
index dfa072fa80815af4dfe7683c461bb68878d0fd5a..088872f4e568246ed6e93ea4d26df7eacd79cc2b 100644 (file)
@@ -1422,8 +1422,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) &&
index a0cf99debb1ecd02244dfaeb14a7e087b7efa1eb..bab9b202b496686b5f97447609db4b32f23cf900 100644 (file)
@@ -836,8 +836,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;
 
index c33324686d89e24e6767196dd1d987ee240c5112..44d07c9e3a7f036e4819721c2a382710c5a3f97e 100644 (file)
@@ -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;
index 129dca3f4b78fea46480db5459f181639d9961b0..807119ae5adf7370622c033dcd714608eea318f1 100644 (file)
@@ -320,8 +320,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;
index 0a677a9aaf340c2661293798c16fede4d8021d88..a7dbfc89202270e205c5fa1ee13a83c4d0e6824e 100644 (file)
@@ -192,8 +192,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);
index 78f5c96c76f31e2952b030bfc87d12385441a4e0..ec90773527eeabe8fbca5b33822fab5639403970 100644 (file)
@@ -1038,8 +1038,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;
 }
index 7b09a9158e401f274300f6213842adf140efd10d..34f546404aa11385388f140c7a7a22d345f5fc31 100644 (file)
@@ -383,8 +383,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;
 }
index 2eee5fb1a882d2d8febe3cc441c937088d8d2e26..4abd928b0bc839db191e75d4dff935bee6ab7e29 100644 (file)
@@ -651,8 +651,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;
 }
index 7dc3bc604f7816fd7d6f09e8a6ca7d5e8b440a02..0d7e948cb29c93193bf783d8cfb9accf86707263 100644 (file)
@@ -2643,8 +2643,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;
index b76ec6b88ded5c8c0717817bd77ade59991f8fbd..68aa38a48308262abe6a28d44190e7f1bb4306bd 100644 (file)
@@ -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);
index e8da1cde87b9be255025cc138ab45853b0209867..3fb7fc819b4fc9ea54089e52ef594be08b661718 100644 (file)
@@ -137,8 +137,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;
 }
index 755293c8c71a631e5afcc81551072cb5d8acbf85..61191f7bdf62df8776edaf511574a228b77e4d2c 100644 (file)
@@ -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;
 }
index e582d001f792eb317257d9e1c2ff20691b8f27fc..d69c8e4f4973079b33149baaa2572442d7eb7920 100644 (file)
@@ -415,8 +415,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;
 }
 
index 0cc4ceec056247a22515b55189b21fd9b5db4b5e..d6c6593ec169e724b84413a8f0274cca29994146 100644 (file)
@@ -380,8 +380,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;
 }
index 02b1d9d0c1821350912bb16bf9dd7560c56c9086..be47263b8605e35e7e1646a0519c98fe55b50a0f 100644 (file)
@@ -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;
 }
 
index 1c42f544096d806ac20d26e376b8e02f80e0c2ee..d40ecaf3c2c263e54cedbfb4684e0636e3163bd2 100644 (file)
@@ -2411,8 +2411,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;
 }
index e3b69fb280e8ccc60162f8597d971ba83e0c1c10..983558b572c70b3d87fe6657caa0db093812b15e 100644 (file)
@@ -1431,8 +1431,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);
 
index 71ac6c1cdc36255d72054abcc5714add09a80b8e..2e04dfc373c1849c739587c117ead63919c85bf6 100644 (file)
@@ -794,8 +794,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);
index 8ec7c8f109d7d8ed0826cdc34e1a3d2b32ba926c..763f48541c68ec941170abb87b6ecaad4c756e33 100644 (file)
@@ -932,8 +932,7 @@ static int zonefs_statfs(struct dentry *dentry, struct kstatfs *buf)
 
        fsid = le64_to_cpup((void *)sbi->s_uuid.b) ^
                le64_to_cpup((void *)sbi->s_uuid.b + sizeof(u64));
-       buf->f_fsid.val[0] = (u32)fsid;
-       buf->f_fsid.val[1] = (u32)(fsid >> 32);
+       buf->f_fsid = u64_to_fsid(fsid);
 
        return 0;
 }
index fac4356ea1bfc352273a5041593e863506319210..20f695b90aab10382fe40b919e8bcb48368d7f60 100644 (file)
@@ -45,4 +45,9 @@ struct kstatfs {
 struct dentry;
 extern int vfs_get_fsid(struct dentry *dentry, __kernel_fsid_t *fsid);
 
+static inline __kernel_fsid_t u64_to_fsid(u64 v)
+{
+       return (__kernel_fsid_t){.val = {(u32)v, (u32)(v>>32)}};
+}
+
 #endif