DF-0030 / fix.diff
diff --git a/sys/kern/vfs_journal.c b/sys/kern/vfs_journal.c --- a/sys/kern/vfs_journal.c +++ b/sys/kern/vfs_journal.c @@ -1219,6 +1219,7 @@ char *base; int pathlen; int index; + int retries = 0; struct namecache *scan; /* @@ -1251,6 +1252,10 @@ if (scan->nc_nlen >= index) { if (base != buf) kfree(base, M_TEMP); + if (++retries > 4) { + /* Name topology changed repeatedly; bail rather than spin. */ + return; + } goto again; } if (index == pathlen) |