]> git.proxmox.com Git - mirror_zfs.git/commit
Account for .zfs ctldir inodes
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 22 Mar 2012 21:47:29 +0000 (14:47 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 22 Mar 2012 22:43:55 +0000 (15:43 -0700)
commit9ed86e7cc7d0880c35f675efc2177012f01f5678
tree7fac3ea74d0c90bc456bcbfc3aac38dfceca5215
parentebe7e575eae1e03b1faa545a424f008faeac589d
Account for .zfs ctldir inodes

Because the .zfs ctldir inodes are not backed by physical storage
they use a different create path which was not properly accounting
for them as used.  This could result in ->nr_cached_objects()
returning 0 and cause a divide by zero error in prune_super().

In my option there's a kernel bug here too which allows this to
happen.  They should either be checking for 0 or adding +1 like
they correctly do earlier in the function.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #617
module/zfs/zfs_ctldir.c