[Jfs-patches] [PATCH 4/9] jfs: return f_fsid for statfs(2)
Brought to you by:
blaschke-oss,
shaggyk
|
From: <sh...@li...> - 2009-06-17 14:22:47
|
commit b5c816a4f177604ae708892bba074b1d534fcbee
Author: Coly Li <co...@su...>
Date: Wed Jan 21 00:05:39 2009 +0800
jfs: return f_fsid for statfs(2)
This patch makes jfs return f_fsid info for statfs(2). By Andreas'
suggestion, this patch populates a persistent f_fsid between boots/mounts
with help of on-disk uuid record.
Signed-off-by: Coly Li <co...@su...>
Signed-off-by: Dave Kleikamp <sh...@li...>
diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index 0dae345..59e07c1 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -29,6 +29,7 @@
#include <linux/posix_acl.h>
#include <linux/buffer_head.h>
#include <linux/exportfs.h>
+#include <linux/crc32.h>
#include <asm/uaccess.h>
#include <linux/seq_file.h>
@@ -168,6 +169,9 @@ static int jfs_statfs(struct dentry *dentry, struct kstatfs *buf)
buf->f_files = maxinodes;
buf->f_ffree = maxinodes - (atomic_read(&imap->im_numinos) -
atomic_read(&imap->im_numfree));
+ buf->f_fsid.val[0] = (u32)crc32_le(0, sbi->uuid, sizeof(sbi->uuid)/2);
+ buf->f_fsid.val[1] = (u32)crc32_le(0, sbi->uuid + sizeof(sbi->uuid)/2,
+ sizeof(sbi->uuid)/2);
buf->f_namelen = JFS_NAME_MAX;
return 0;
|