diff options
author | Amir Goldstein <amir73il@gmail.com> | 2023-10-24 14:14:57 +0200 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2023-10-28 16:16:19 +0200 |
commit | ceb33880431c8284b58de5602b15dfb7ac0a4aa5 (patch) | |
tree | 3d857fe0fdc1a21d9d508a9fde5b283cad76f621 /fs/freevxfs/vxfs_super.c | |
parent | fs: report f_fsid from s_dev for "simple" filesystems (diff) | |
download | linux-ceb33880431c8284b58de5602b15dfb7ac0a4aa5.tar.xz linux-ceb33880431c8284b58de5602b15dfb7ac0a4aa5.zip |
freevxfs: derive f_fsid from bdev->bd_dev
The majority of blockdev filesystems, which do not have a UUID in their
on-disk format, derive f_fsid of statfs(2) from bdev->bd_dev.
Use the same practice for freevxfs.
This will allow reporting fanotify events with fanotify_event_info_fid.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Link: https://lore.kernel.org/r/20231024121457.3014063-1-amir73il@gmail.com
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/freevxfs/vxfs_super.c')
-rw-r--r-- | fs/freevxfs/vxfs_super.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/freevxfs/vxfs_super.c b/fs/freevxfs/vxfs_super.c index 310d73e254df..e6e2a2185e7c 100644 --- a/fs/freevxfs/vxfs_super.c +++ b/fs/freevxfs/vxfs_super.c @@ -76,6 +76,7 @@ vxfs_statfs(struct dentry *dentry, struct kstatfs *bufp) { struct vxfs_sb_info *infp = VXFS_SBI(dentry->d_sb); struct vxfs_sb *raw_sb = infp->vsi_raw; + u64 id = huge_encode_dev(dentry->d_sb->s_bdev->bd_dev); bufp->f_type = VXFS_SUPER_MAGIC; bufp->f_bsize = dentry->d_sb->s_blocksize; @@ -84,6 +85,7 @@ vxfs_statfs(struct dentry *dentry, struct kstatfs *bufp) bufp->f_bavail = 0; bufp->f_files = 0; bufp->f_ffree = fs32_to_cpu(infp, raw_sb->vs_ifree); + bufp->f_fsid = u64_to_fsid(id); bufp->f_namelen = VXFS_NAMELEN; return 0; |