Commit ceb33880 authored by Amir Goldstein's avatar Amir Goldstein Committed by Christian Brauner

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: default avatarAmir Goldstein <amir73il@gmail.com>
Link: https://lore.kernel.org/r/20231024121457.3014063-1-amir73il@gmail.comReviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent ae62bcb5
...@@ -76,6 +76,7 @@ vxfs_statfs(struct dentry *dentry, struct kstatfs *bufp) ...@@ -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_info *infp = VXFS_SBI(dentry->d_sb);
struct vxfs_sb *raw_sb = infp->vsi_raw; 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_type = VXFS_SUPER_MAGIC;
bufp->f_bsize = dentry->d_sb->s_blocksize; bufp->f_bsize = dentry->d_sb->s_blocksize;
...@@ -84,6 +85,7 @@ vxfs_statfs(struct dentry *dentry, struct kstatfs *bufp) ...@@ -84,6 +85,7 @@ vxfs_statfs(struct dentry *dentry, struct kstatfs *bufp)
bufp->f_bavail = 0; bufp->f_bavail = 0;
bufp->f_files = 0; bufp->f_files = 0;
bufp->f_ffree = fs32_to_cpu(infp, raw_sb->vs_ifree); bufp->f_ffree = fs32_to_cpu(infp, raw_sb->vs_ifree);
bufp->f_fsid = u64_to_fsid(id);
bufp->f_namelen = VXFS_NAMELEN; bufp->f_namelen = VXFS_NAMELEN;
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment