http://p4web.freebsd.org/@@189855?ac=10
Change 189855 by lz@freebsd-dev on 2011/03/11 10:25:07
Check block map in runlen == 0.
Affected files ...
.. //depot/projects/soc2010/extfs/src/sys/fs/ext2fs/ext2_alloc.c#38 edit
Differences ...
==== //depot/projects/soc2010/extfs/src/sys/fs/ext2fs/ext2_alloc.c#38 (text+ko)
====
@@ -1345,6 +1345,13 @@
}
if (runlen == 0) {
+ bit = ffs(bbp[loc]) - 1;
+ runlen += bit;
+ if (runlen >= len) {
+ bno = loc * NBBY;
+ goto gotit;
+ }
+
bit = fls(bbp[loc]);
runlen = NBBY - bit;
runstart = loc * NBBY + bit;