summaryrefslogtreecommitdiffstats
path: root/module/zfs
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-02-23 13:57:50 -0800
committerBrian Behlendorf <[email protected]>2011-02-23 14:00:06 -0800
commit05ff35c602827a0f03659ec974c67b3fb5bf1c0b (patch)
tree49be67a4fc6d5ecd067caf1df8575f3084b7798f /module/zfs
parentf6dcdf13f80ee039141ab92ae506bd4443111662 (diff)
Increase fragment size to block size
The underlying storage pool actually uses multiple block size. Under Solaris frsize (fragment size) is reported as the smallest block size we support, and bsize (block size) as the filesystem's maximum block size. Unfortunately, under Linux the fragment size and block size are often used interchangeably. Thus we are forced to report both of them as the filesystem's maximum block size. Closes #112
Diffstat (limited to 'module/zfs')
-rw-r--r--module/zfs/zfs_vfsops.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/module/zfs/zfs_vfsops.c b/module/zfs/zfs_vfsops.c
index bb2fdb029..028638d5c 100644
--- a/module/zfs/zfs_vfsops.c
+++ b/module/zfs/zfs_vfsops.c
@@ -997,11 +997,15 @@ zfs_statvfs(struct dentry *dentry, struct kstatfs *statp)
&refdbytes, &availbytes, &usedobjs, &availobjs);
/*
- * The underlying storage pool actually uses multiple block sizes.
- * We report the fragsize as the smallest block size we support,
- * and we report our blocksize as the filesystem's maximum blocksize.
+ * The underlying storage pool actually uses multiple block
+ * size. Under Solaris frsize (fragment size) is reported as
+ * the smallest block size we support, and bsize (block size)
+ * as the filesystem's maximum block size. Unfortunately,
+ * under Linux the fragment size and block size are often used
+ * interchangeably. Thus we are forced to report both of them
+ * as the filesystem's maximum block size.
*/
- statp->f_frsize = 1UL << SPA_MINBLOCKSHIFT;
+ statp->f_frsize = zsb->z_max_blksz;
statp->f_bsize = zsb->z_max_blksz;
bshift = fls(statp->f_bsize) - 1;