HAMMER 64/Many: NFS, cross-device links, synctid
* Check for cross-device links and cross-PFS links in the link and
rename code.
* Update a directory's mtime when a file is created or deleted within it.
(good idea anyway, also allows NFS clients to properly invalidate their
directory caches).
* Only lock the PFS sync-end-tid field when the HAMMER_PFSD_SLAVE flag is
not set.
* Clear ocp->dip->objid_cache when cleaning out the object cache.
* PFS softlinks in the form @@PFS%05d are auto-expanded by HAMMER's
readlink() to include a snapshot transaction id. Adjust getattr
to properly set va_size (aka stat->st_size) to the length of the
expanded version. This fixes NFS confusion and allows PFS's to be
mounted via their softlinks.
* Fix another issue where the synctid ioctl would still sometimes stall
until the next filesystem sync.
Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx>