freebsd-skq/sys/ufs
kib d068222571 When ffs_realloccg() failed to allocate bigger fragment and, because
pending blocks are scheduled for removal, goes to retry the (re)allocation,
clear the bp pointer. It might happen that meantime free space is really
exhausted and we are entering nospace: label without bread()ing buffer,
causing stale bp value to be brelse()d again.

Tested by:	pho
    (Producing a scenario to reliably reproduce the
     race appeared to be much harder then fixing the bug)
MFC after:	1 week
2010-02-13 10:34:50 +00:00
..
ffs When ffs_realloccg() failed to allocate bigger fragment and, because 2010-02-13 10:34:50 +00:00
ufs Return proper error code. 2010-01-25 16:09:50 +00:00