[Bug 165392] [ufs] [patch] Multiple mkdir/rmdir fails with errno 31

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 18 Jun 2022 11:07:51 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=165392

Konstantin Belousov <kib@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kib@FreeBSD.org,
                   |                            |mckusick@FreeBSD.org,
                   |                            |pho@FreeBSD.org

--- Comment #12 from Konstantin Belousov <kib@FreeBSD.org> ---
I do not think it is enough to fsync() only the directory, as jh' patch
cleanly illustrates.  What it does is significant portion of VFS_SYNC()
anyway, so it is cleaner to just do VFS_SYNC() and pay the cost of syncing
data even if not strictly necessary.

OTOH it is not safe to do any of that stuff while then vnode is locked.
We recently got a way to correctly restart this kind of VOPs if they need
to relock the directory, which implies the need to do re-lookup of the entry.

I put the patch at
https://reviews.freebsd.org/D35514
to handle just mkdir() for now.  Other syscalls like link() and rename would
need similar treatment if my patch works.

-- 
You are receiving this mail because:
You are the assignee for the bug.