Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

Al Viro 6d1349c7 aabf5943

+36 -62
+1 -2
fs/9p/vfs_super.c
··· 258 258 buf->f_bavail = rs.bavail; 259 259 buf->f_files = rs.files; 260 260 buf->f_ffree = rs.ffree; 261 - buf->f_fsid.val[0] = rs.fsid & 0xFFFFFFFFUL; 262 - buf->f_fsid.val[1] = (rs.fsid >> 32) & 0xFFFFFFFFUL; 261 + buf->f_fsid = u64_to_fsid(rs.fsid); 263 262 buf->f_namelen = rs.namelen; 264 263 } 265 264 if (res != -ENOSYS)
+1 -2
fs/adfs/super.c
··· 210 210 buf->f_namelen = sbi->s_namelen; 211 211 buf->f_bsize = sb->s_blocksize; 212 212 buf->f_ffree = (long)(buf->f_bfree * buf->f_files) / (long)buf->f_blocks; 213 - buf->f_fsid.val[0] = (u32)id; 214 - buf->f_fsid.val[1] = (u32)(id >> 32); 213 + buf->f_fsid = u64_to_fsid(id); 215 214 216 215 return 0; 217 216 }
+1 -2
fs/affs/super.c
··· 620 620 buf->f_blocks = AFFS_SB(sb)->s_partition_size - AFFS_SB(sb)->s_reserved; 621 621 buf->f_bfree = free; 622 622 buf->f_bavail = free; 623 - buf->f_fsid.val[0] = (u32)id; 624 - buf->f_fsid.val[1] = (u32)(id >> 32); 623 + buf->f_fsid = u64_to_fsid(id); 625 624 buf->f_namelen = AFFSNAMEMAX; 626 625 return 0; 627 626 }
+1 -2
fs/befs/linuxvfs.c
··· 963 963 buf->f_bavail = buf->f_bfree; 964 964 buf->f_files = 0; /* UNKNOWN */ 965 965 buf->f_ffree = 0; /* UNKNOWN */ 966 - buf->f_fsid.val[0] = (u32)id; 967 - buf->f_fsid.val[1] = (u32)(id >> 32); 966 + buf->f_fsid = u64_to_fsid(id); 968 967 buf->f_namelen = BEFS_NAME_LEN; 969 968 970 969 befs_debug(sb, "<--- %s", __func__);
+1 -2
fs/bfs/inode.c
··· 229 229 buf->f_bfree = buf->f_bavail = info->si_freeb; 230 230 buf->f_files = info->si_lasti + 1 - BFS_ROOT_INO; 231 231 buf->f_ffree = info->si_freei; 232 - buf->f_fsid.val[0] = (u32)id; 233 - buf->f_fsid.val[1] = (u32)(id >> 32); 232 + buf->f_fsid = u64_to_fsid(id); 234 233 buf->f_namelen = BFS_NAMELEN; 235 234 return 0; 236 235 }
+1 -2
fs/ceph/super.c
··· 104 104 le64_to_cpu(*((__le64 *)&monc->monmap->fsid + 1)); 105 105 mutex_unlock(&monc->mutex); 106 106 107 - buf->f_fsid.val[0] = fsid & 0xffffffff; 108 - buf->f_fsid.val[1] = fsid >> 32; 107 + buf->f_fsid = u64_to_fsid(fsid); 109 108 110 109 return 0; 111 110 }
+1 -2
fs/cramfs/inode.c
··· 690 690 buf->f_bavail = 0; 691 691 buf->f_files = CRAMFS_SB(sb)->files; 692 692 buf->f_ffree = 0; 693 - buf->f_fsid.val[0] = (u32)id; 694 - buf->f_fsid.val[1] = (u32)(id >> 32); 693 + buf->f_fsid = u64_to_fsid(id); 695 694 buf->f_namelen = CRAMFS_MAXPATHLEN; 696 695 return 0; 697 696 }
+1 -2
fs/efs/super.c
··· 342 342 sbi->inode_blocks * 343 343 (EFS_BLOCKSIZE / sizeof(struct efs_dinode)); 344 344 buf->f_ffree = sbi->inode_free; /* free inodes */ 345 - buf->f_fsid.val[0] = (u32)id; 346 - buf->f_fsid.val[1] = (u32)(id >> 32); 345 + buf->f_fsid = u64_to_fsid(id); 347 346 buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */ 348 347 349 348 return 0;
+1 -2
fs/erofs/super.c
··· 563 563 564 564 buf->f_namelen = EROFS_NAME_LEN; 565 565 566 - buf->f_fsid.val[0] = (u32)id; 567 - buf->f_fsid.val[1] = (u32)(id >> 32); 566 + buf->f_fsid = u64_to_fsid(id); 568 567 return 0; 569 568 } 570 569
+1 -2
fs/exfat/super.c
··· 89 89 buf->f_blocks = sbi->num_clusters - 2; /* clu 0 & 1 */ 90 90 buf->f_bfree = buf->f_blocks - sbi->used_clusters; 91 91 buf->f_bavail = buf->f_bfree; 92 - buf->f_fsid.val[0] = (unsigned int)id; 93 - buf->f_fsid.val[1] = (unsigned int)(id >> 32); 92 + buf->f_fsid = u64_to_fsid(id); 94 93 /* Unicode utf16 255 characters */ 95 94 buf->f_namelen = EXFAT_MAX_FILE_LEN * NLS_MAX_CHARSET_SIZE; 96 95 return 0;
+1 -2
fs/ext2/super.c
··· 1455 1455 buf->f_namelen = EXT2_NAME_LEN; 1456 1456 fsid = le64_to_cpup((void *)es->s_uuid) ^ 1457 1457 le64_to_cpup((void *)es->s_uuid + sizeof(u64)); 1458 - buf->f_fsid.val[0] = fsid & 0xFFFFFFFFUL; 1459 - buf->f_fsid.val[1] = (fsid >> 32) & 0xFFFFFFFFUL; 1458 + buf->f_fsid = u64_to_fsid(fsid); 1460 1459 spin_unlock(&sbi->s_lock); 1461 1460 return 0; 1462 1461 }
+1 -2
fs/ext4/super.c
··· 5787 5787 buf->f_namelen = EXT4_NAME_LEN; 5788 5788 fsid = le64_to_cpup((void *)es->s_uuid) ^ 5789 5789 le64_to_cpup((void *)es->s_uuid + sizeof(u64)); 5790 - buf->f_fsid.val[0] = fsid & 0xFFFFFFFFUL; 5791 - buf->f_fsid.val[1] = (fsid >> 32) & 0xFFFFFFFFUL; 5790 + buf->f_fsid = u64_to_fsid(fsid); 5792 5791 5793 5792 #ifdef CONFIG_QUOTA 5794 5793 if (ext4_test_inode_flag(dentry->d_inode, EXT4_INODE_PROJINHERIT) &&
+1 -2
fs/f2fs/super.c
··· 1422 1422 } 1423 1423 1424 1424 buf->f_namelen = F2FS_NAME_LEN; 1425 - buf->f_fsid.val[0] = (u32)id; 1426 - buf->f_fsid.val[1] = (u32)(id >> 32); 1425 + buf->f_fsid = u64_to_fsid(id); 1427 1426 1428 1427 #ifdef CONFIG_QUOTA 1429 1428 if (is_inode_flag_set(dentry->d_inode, FI_PROJ_INHERIT) &&
+1 -2
fs/fat/inode.c
··· 836 836 buf->f_blocks = sbi->max_cluster - FAT_START_ENT; 837 837 buf->f_bfree = sbi->free_clusters; 838 838 buf->f_bavail = sbi->free_clusters; 839 - buf->f_fsid.val[0] = (u32)id; 840 - buf->f_fsid.val[1] = (u32)(id >> 32); 839 + buf->f_fsid = u64_to_fsid(id); 841 840 buf->f_namelen = 842 841 (sbi->options.isvfat ? FAT_LFN_LEN : 12) * NLS_MAX_CHARSET_SIZE; 843 842
+1 -2
fs/hfs/super.c
··· 104 104 buf->f_bavail = buf->f_bfree; 105 105 buf->f_files = HFS_SB(sb)->fs_ablocks; 106 106 buf->f_ffree = HFS_SB(sb)->free_ablocks; 107 - buf->f_fsid.val[0] = (u32)id; 108 - buf->f_fsid.val[1] = (u32)(id >> 32); 107 + buf->f_fsid = u64_to_fsid(id); 109 108 buf->f_namelen = HFS_NAMELEN; 110 109 111 110 return 0;
+1 -2
fs/hfsplus/super.c
··· 320 320 buf->f_bavail = buf->f_bfree; 321 321 buf->f_files = 0xFFFFFFFF; 322 322 buf->f_ffree = 0xFFFFFFFF - sbi->next_cnid; 323 - buf->f_fsid.val[0] = (u32)id; 324 - buf->f_fsid.val[1] = (u32)(id >> 32); 323 + buf->f_fsid = u64_to_fsid(id); 325 324 buf->f_namelen = HFSPLUS_MAX_STRLEN; 326 325 327 326 return 0;
+1 -2
fs/hpfs/super.c
··· 192 192 buf->f_bavail = sbi->sb_n_free; 193 193 buf->f_files = sbi->sb_dirband_size / 4; 194 194 buf->f_ffree = hpfs_get_free_dnodes(s); 195 - buf->f_fsid.val[0] = (u32)id; 196 - buf->f_fsid.val[1] = (u32)(id >> 32); 195 + buf->f_fsid = u64_to_fsid(id); 197 196 buf->f_namelen = 254; 198 197 199 198 hpfs_unlock(s);
+1 -2
fs/isofs/inode.c
··· 1038 1038 buf->f_bavail = 0; 1039 1039 buf->f_files = ISOFS_SB(sb)->s_ninodes; 1040 1040 buf->f_ffree = 0; 1041 - buf->f_fsid.val[0] = (u32)id; 1042 - buf->f_fsid.val[1] = (u32)(id >> 32); 1041 + buf->f_fsid = u64_to_fsid(id); 1043 1042 buf->f_namelen = NAME_MAX; 1044 1043 return 0; 1045 1044 }
+1 -2
fs/minix/inode.c
··· 383 383 buf->f_files = sbi->s_ninodes; 384 384 buf->f_ffree = minix_count_free_inodes(sb); 385 385 buf->f_namelen = sbi->s_namelen; 386 - buf->f_fsid.val[0] = (u32)id; 387 - buf->f_fsid.val[1] = (u32)(id >> 32); 386 + buf->f_fsid = u64_to_fsid(id); 388 387 389 388 return 0; 390 389 }
+1 -2
fs/nilfs2/super.c
··· 651 651 buf->f_files = nmaxinodes; 652 652 buf->f_ffree = nfreeinodes; 653 653 buf->f_namelen = NILFS_NAME_LEN; 654 - buf->f_fsid.val[0] = (u32)id; 655 - buf->f_fsid.val[1] = (u32)(id >> 32); 654 + buf->f_fsid = u64_to_fsid(id); 656 655 657 656 return 0; 658 657 }
+1 -2
fs/ntfs/super.c
··· 2643 2643 * the least significant 32-bits in f_fsid[0] and the most significant 2644 2644 * 32-bits in f_fsid[1]. 2645 2645 */ 2646 - sfs->f_fsid.val[0] = vol->serial_no & 0xffffffff; 2647 - sfs->f_fsid.val[1] = (vol->serial_no >> 32) & 0xffffffff; 2646 + sfs->f_fsid = u64_to_fsid(vol->serial_no); 2648 2647 /* Maximum length of filenames. */ 2649 2648 sfs->f_namelen = NTFS_MAX_NAME_LEN; 2650 2649 return 0;
+1 -2
fs/omfs/inode.c
··· 282 282 buf->f_blocks = sbi->s_num_blocks; 283 283 buf->f_files = sbi->s_num_blocks; 284 284 buf->f_namelen = OMFS_NAMELEN; 285 - buf->f_fsid.val[0] = (u32)id; 286 - buf->f_fsid.val[1] = (u32)(id >> 32); 285 + buf->f_fsid = u64_to_fsid(id); 287 286 288 287 buf->f_bfree = buf->f_bavail = buf->f_ffree = 289 288 omfs_count_free(s);
+1 -2
fs/qnx4/inode.c
··· 137 137 buf->f_bfree = qnx4_count_free_blocks(sb); 138 138 buf->f_bavail = buf->f_bfree; 139 139 buf->f_namelen = QNX4_NAME_MAX; 140 - buf->f_fsid.val[0] = (u32)id; 141 - buf->f_fsid.val[1] = (u32)(id >> 32); 140 + buf->f_fsid = u64_to_fsid(id); 142 141 143 142 return 0; 144 143 }
+1 -2
fs/qnx6/inode.c
··· 166 166 buf->f_ffree = fs32_to_cpu(sbi, sbi->sb->sb_free_inodes); 167 167 buf->f_bavail = buf->f_bfree; 168 168 buf->f_namelen = QNX6_LONG_NAME_MAX; 169 - buf->f_fsid.val[0] = (u32)id; 170 - buf->f_fsid.val[1] = (u32)(id >> 32); 169 + buf->f_fsid = u64_to_fsid(id); 171 170 172 171 return 0; 173 172 }
+1 -2
fs/romfs/super.c
··· 415 415 buf->f_bfree = buf->f_bavail = buf->f_ffree; 416 416 buf->f_blocks = 417 417 (romfs_maxsize(dentry->d_sb) + ROMBSIZE - 1) >> ROMBSBITS; 418 - buf->f_fsid.val[0] = (u32)id; 419 - buf->f_fsid.val[1] = (u32)(id >> 32); 418 + buf->f_fsid = u64_to_fsid(id); 420 419 return 0; 421 420 } 422 421
+1 -2
fs/squashfs/super.c
··· 380 380 buf->f_files = msblk->inodes; 381 381 buf->f_ffree = 0; 382 382 buf->f_namelen = SQUASHFS_NAME_LEN; 383 - buf->f_fsid.val[0] = (u32)id; 384 - buf->f_fsid.val[1] = (u32)(id >> 32); 383 + buf->f_fsid = u64_to_fsid(id); 385 384 386 385 return 0; 387 386 }
+1 -2
fs/sysv/inode.c
··· 98 98 buf->f_files = sbi->s_ninodes; 99 99 buf->f_ffree = sysv_count_free_inodes(sb); 100 100 buf->f_namelen = SYSV_NAMELEN; 101 - buf->f_fsid.val[0] = (u32)id; 102 - buf->f_fsid.val[1] = (u32)(id >> 32); 101 + buf->f_fsid = u64_to_fsid(id); 103 102 return 0; 104 103 } 105 104
+1 -2
fs/udf/super.c
··· 2411 2411 + buf->f_bfree; 2412 2412 buf->f_ffree = buf->f_bfree; 2413 2413 buf->f_namelen = UDF_NAME_LEN; 2414 - buf->f_fsid.val[0] = (u32)id; 2415 - buf->f_fsid.val[1] = (u32)(id >> 32); 2414 + buf->f_fsid = u64_to_fsid(id); 2416 2415 2417 2416 return 0; 2418 2417 }
+1 -2
fs/ufs/super.c
··· 1431 1431 ? (buf->f_bfree - uspi->s_root_blocks) : 0; 1432 1432 buf->f_files = uspi->s_ncg * uspi->s_ipg; 1433 1433 buf->f_namelen = UFS_MAXNAMLEN; 1434 - buf->f_fsid.val[0] = (u32)id; 1435 - buf->f_fsid.val[1] = (u32)(id >> 32); 1434 + buf->f_fsid = u64_to_fsid(id); 1436 1435 1437 1436 mutex_unlock(&UFS_SB(sb)->s_lock); 1438 1437
+1 -2
fs/xfs/xfs_super.c
··· 794 794 statp->f_namelen = MAXNAMELEN - 1; 795 795 796 796 id = huge_encode_dev(mp->m_ddev_targp->bt_dev); 797 - statp->f_fsid.val[0] = (u32)id; 798 - statp->f_fsid.val[1] = (u32)(id >> 32); 797 + statp->f_fsid = u64_to_fsid(id); 799 798 800 799 icount = percpu_counter_sum(&mp->m_icount); 801 800 ifree = percpu_counter_sum(&mp->m_ifree);
+1 -2
fs/zonefs/super.c
··· 932 932 933 933 fsid = le64_to_cpup((void *)sbi->s_uuid.b) ^ 934 934 le64_to_cpup((void *)sbi->s_uuid.b + sizeof(u64)); 935 - buf->f_fsid.val[0] = (u32)fsid; 936 - buf->f_fsid.val[1] = (u32)(fsid >> 32); 935 + buf->f_fsid = u64_to_fsid(fsid); 937 936 938 937 return 0; 939 938 }
+5
include/linux/statfs.h
··· 45 45 struct dentry; 46 46 extern int vfs_get_fsid(struct dentry *dentry, __kernel_fsid_t *fsid); 47 47 48 + static inline __kernel_fsid_t u64_to_fsid(u64 v) 49 + { 50 + return (__kernel_fsid_t){.val = {(u32)v, (u32)(v>>32)}}; 51 + } 52 + 48 53 #endif