# DF-2639 — hammer2_inode_create_pfs never sets *errorp on its done2 error paths (silent snapshot/PFS-create failure)

## What
sys/vfs/hammer2/hammer2_inode.c:988-1112 (hammer2_inode_create_pfs) sets
`*errorp = 0;` at entry (line 1006) but the two `goto done2` error paths
leave it at 0 while returning `nip == NULL`:

* scanlhc xop failed with an error other than ENOENT (I/O error) —
  hammer2_inode.c:1042-1044 (`if (error) { if (error != ENOENT) goto done2; ... }`)
* lhc exhausted the directory-hash collision window —
  hammer2_inode.c:1048-1051 (HAMMER2_ERROR_ENOSPC -> goto done2)

The local `error` is discarded at `done2:` (only `hammer2_inode_unlock(pip)`
runs). The only caller, `hammer2_ioctl_pfs_snapshot`
(hammer2_ioctl.c:878ff), then proceeds on `nip == NULL` with `error == 0`
and reports SUCCESS to the privileged caller without creating anything.

Impact: silent failure of HAMMER2IOC_PFS_SNAPSHOT (and any future caller);
root-only, availability/robustness only. Low.

## Fix
```diff
 	if ((lhcbase ^ lhc) & ~HAMMER2_DIRHASH_LOMASK) {
 		error = HAMMER2_ERROR_ENOSPC;
+		*errorp = error;
 		goto done2;
 	}
 ...
 		if (error) {
 			if (error != HAMMER2_ERROR_ENOENT)
 				goto done2;
```
(set `*errorp = error;` before the first `goto done2` as well).
