| 894 | } |
| 895 | |
| 896 | int |
| 897 | zap_count(objset_t *os, uint64_t zapobj, uint64_t *count) |
| 898 | { |
| 899 | zap_t *zap; |
| 900 | |
| 901 | int err = |
| 902 | zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); |
| 903 | if (err != 0) |
| 904 | return (err); |
| 905 | if (!zap->zap_ismicro) { |
| 906 | err = fzap_count(zap, count); |
| 907 | } else { |
| 908 | *count = zap->zap_m.zap_num_entries; |
| 909 | } |
| 910 | zap_unlockdir(zap, FTAG); |
| 911 | return (err); |
| 912 | } |
| 913 | |
| 914 | /* |
| 915 | * zn may be NULL; if not specified, it will be computed if needed. |