Răsfoiți Sursa

fs/qnx4: return f_fsid for statfs(2)

Make qnx4 file system return f_fsid info for statfs(2).

Signed-off-by: Coly Li <coly.li@suse.de>
Acked-by: Anders Larsen <al@alarsen.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Coly Li 16 ani în urmă
părinte
comite
5b76dc066a
1 a modificat fișierele cu 3 adăugiri și 0 ștergeri
  1. 3 0
      fs/qnx4/inode.c

+ 3 - 0
fs/qnx4/inode.c

@@ -282,6 +282,7 @@ unsigned long qnx4_block_map( struct inode *inode, long iblock )
 static int qnx4_statfs(struct dentry *dentry, struct kstatfs *buf)
 static int qnx4_statfs(struct dentry *dentry, struct kstatfs *buf)
 {
 {
 	struct super_block *sb = dentry->d_sb;
 	struct super_block *sb = dentry->d_sb;
+	u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
 
 
 	lock_kernel();
 	lock_kernel();
 
 
@@ -291,6 +292,8 @@ static int qnx4_statfs(struct dentry *dentry, struct kstatfs *buf)
 	buf->f_bfree   = qnx4_count_free_blocks(sb);
 	buf->f_bfree   = qnx4_count_free_blocks(sb);
 	buf->f_bavail  = buf->f_bfree;
 	buf->f_bavail  = buf->f_bfree;
 	buf->f_namelen = QNX4_NAME_MAX;
 	buf->f_namelen = QNX4_NAME_MAX;
+	buf->f_fsid.val[0] = (u32)id;
+	buf->f_fsid.val[1] = (u32)(id >> 32);
 
 
 	unlock_kernel();
 	unlock_kernel();