diff options
-rw-r--r-- | drivers/md/bcache/fs.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/md/bcache/fs.c b/drivers/md/bcache/fs.c index f707417b6756..e491ed3bc385 100644 --- a/drivers/md/bcache/fs.c +++ b/drivers/md/bcache/fs.c @@ -1110,6 +1110,7 @@ static int bch_statfs(struct dentry *dentry, struct kstatfs *buf) { struct super_block *sb = dentry->d_sb; struct cache_set *c = sb->s_fs_info; + u64 fsid; buf->f_type = BCACHE_STATFS_MAGIC; buf->f_bsize = sb->s_blocksize; @@ -1118,6 +1119,11 @@ static int bch_statfs(struct dentry *dentry, struct kstatfs *buf) buf->f_bavail = buf->f_bfree; buf->f_files = atomic_long_read(&c->nr_inodes); buf->f_ffree = U64_MAX; + + fsid = le64_to_cpup((void *) c->disk_sb.user_uuid.b) ^ + le64_to_cpup((void *) c->disk_sb.user_uuid.b + sizeof(u64)); + buf->f_fsid.val[0] = fsid & 0xFFFFFFFFUL; + buf->f_fsid.val[1] = (fsid >> 32) & 0xFFFFFFFFUL; buf->f_namelen = NAME_MAX; return 0; |