Hello list!

So, I am currently trying to figure where and how XATTRs "space" is actually released, as it appears they are not for us. Both in releasing the entry in unlinked-list, and the space they take up.

In my tests, I create 1MB xattr files to take up a 1GB of space, then delete them all. The space is never returned, including after remount.

In zfs_remove(), they are placed on the zfs_unlinked_add(), and are supposed to be released next mount time.

If I count up the number of entries that zfs_unlinked_drain() I get something like:

ZFS: unlinked drain completed (22705).

That's 22705 zget()s, and it sets z_unlinked.

But that is all, if I create another xattr, and call rm, next mount:

ZFS: unlinked drain completed (22706).

Once z_unlinked is set, how is the node supposed to be cleared out? (and hopefully the unlinked_link to be made smaller!)

When I tried 1MB xattr on Solaris 10 the space is also not returned, but (annoyingly! :) ) the latest IllumOS does return the space after remount.

Lund
_______________________________________________
developer mailing list
[email protected]
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to