FreeBSD src
Go to file
Andreas Dilger baab063016 zpl: Fix "df -i" to have better free inodes value
Due to the confusion in Linux statfs between f_frsize and f_bsize
the blocks counts were changed to be in units of z_max_blksize
instead of SPA_MINBLOCKSIZE as it is on other platforms.

However, the free files calculation in zfs_statvfs() is limited by
the free blocks count, since each dnode consumes one block/sector.
This provided a reasonable estimate of free inodes, but on Linux
this meant that the free inodes count was underestimated by a large
amount, since 256 512-byte dnodes can fit into a 128kB block, and
more if the max blocksize is increased to 1MB or larger.

Also, the use of SPA_MINBLOCKSIZE is semantically incorrect since
DNODE_SIZE may change to a value other than SPA_MINBLOCKSIZE and
may even change per dataset, and devices with large sectors setting
ashift will also use a larger blocksize.

Correct the f_ffree calculation to use (availbytes >> DNODE_SHIFT)
to more accurately compute the maximum number of dnodes that can
be created.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #413
Closes #400
2011-09-28 11:27:10 -07:00
cmd Fix uninitialized varible in zfs_do_userspace() 2011-09-27 16:56:38 -07:00
config Convert 'if' statements to AS_IF in kernel.m4 2011-09-06 13:20:48 -07:00
dracut Fix boot failure in Dracut scripts. 2011-09-26 09:29:51 -07:00
etc Use automatic variable in Makefile 2011-09-26 09:22:30 -07:00
include Export symbols for the full ZAP API 2011-09-27 16:12:36 -07:00
lib Make libefi-created GPT compatible with gptfdisk 2011-09-26 09:44:43 -07:00
man Autogen refresh for udev changes 2011-08-08 16:30:27 -07:00
module zpl: Fix "df -i" to have better free inodes value 2011-09-28 11:27:10 -07:00
patches Add build system 2010-08-31 13:41:27 -07:00
scripts Autogen refresh for udev changes 2011-08-08 16:30:27 -07:00
udev Move 90-zfs udev rule from dracut to udev/rules.d 2011-08-19 16:26:13 -07:00
.gitignore Ignore unsigned module build products 2010-03-09 14:14:09 -08:00
AUTHORS Add "ashift" property to zpool create 2011-06-17 16:35:49 -07:00
autogen.sh Make autogen.sh executable 2011-07-26 10:15:35 -07:00
ChangeLog Add build system 2010-08-31 13:41:27 -07:00
configure Convert 'if' statements to AS_IF in kernel.m4 2011-09-06 13:20:48 -07:00
configure.ac Fix autoconf variable substitution in init scripts. 2011-08-19 16:26:14 -07:00
COPYING Relocate COPYING+COPYRIGHT, remove README cruft 2008-12-01 15:34:53 -08:00
COPYRIGHT Update COPYRIGHT to reference zpios CDDL exceptions. 2010-05-18 14:25:28 -07:00
DISCLAIMER Update COPYRIGHT and DISCLAIMER. 2010-05-18 10:32:23 -07:00
Makefile.am Move udev rules from /etc/udev to /lib/udev 2011-08-08 16:21:10 -07:00
Makefile.in Autogen refresh for udev changes 2011-08-08 16:30:27 -07:00
META Prep zfs-0.6.0-rc5 tag 2011-07-01 15:24:34 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix markdown rendering 2010-09-15 09:09:37 -07:00
zfs_config.h.in Add backing_device_info per-filesystem 2011-08-04 13:37:38 -07:00
zfs-modules.spec.in Fix package URLs to use the github repository 2011-09-06 13:37:13 -07:00
zfs-script-config.sh.in Unconditionally load core kernel modules 2010-11-11 11:38:25 -08:00
ZFS.RELEASE Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs.spec.in Install zfs-devel headers in /usr/include 2011-09-12 11:45:23 -07:00

Native ZFS for Linux! ZFS is an advanced file system and volume manager which was originally developed for Solaris. It has been successfully ported to FreeBSD and now there is a functional Linux ZFS kernel port too. The port currently includes a fully functional and stable SPA, DMU, and ZVOL with a ZFS Posix Layer (ZPL) on the way!

$ ./configure
$ make pkg

Full documentation for building, configuring, and using ZFS can be found at: http://zfsonlinux.org