diff options
| author | Maxim Sobolev <sobomax@FreeBSD.org> | 2026-09-30 05:11:10 +0000 |
|---|---|---|
| committer | Maxim Sobolev <sobomax@FreeBSD.org> | 2026-09-30 05:11:42 +0000 |
| commit | a179e72489f8601f37b9039c86d3f224c73b3d51 (patch) | |
| tree | 45fab6636a3b5909b1f1863bf4993c0e1242e7f2 /sys/kern/vfs_hash.c | |
| parent | f11af6535044c8266d52806d72b07e939f94049c (diff) | |
When ufs_rename() moves a directory to a new parent and ufs_dirrewrite()
fails to rewrite its ".." entry, it reports "bad dir ... rename: missing
.. entry" whatever the error. ufs_dirrewrite() never finds a missing
"..", though: it fails with EIDRM when the ".." entry names another inode
than the expected one, and otherwise only when the directory block cannot
be read or written. The latter happens for every directory rename in
flight when the device goes away under a forcibly unmounted file system,
and the log then fills with reports of directories that are intact on
disk.
Report the EIDRM case with ufs_dirbad() in ufs_dirrewrite() itself, so
that all of its callers get the same diagnostic, and drop the report
from ufs_rename(). Errors from the lower layers are not reported, as
usual for an I/O initiator.
Reviewed by: kib
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D60137
Diffstat (limited to 'sys/kern/vfs_hash.c')
0 files changed, 0 insertions, 0 deletions
