Subject: Re: resize_ffs and fsck need touchup
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Pavel Cahyna <pavel.cahyna@st.mff.cuni.cz>
List: tech-userlevel
Date: 04/04/2006 19:25:30
On Mon, Mar 27, 2006 at 03:51:33PM -0500, der Mouse wrote:
> In resize_ffs's source, there is a comment reading, in part,
> 
>  * XXX is there a bug lurking in the ignoring of block boundaries by
>  *  the routine used by fragmove() in evict_data()?  Can an end-of-file
>  *  frag legally straddle a block boundary?  If not, this should be
>  *  cloned and fixed to stop at block boundaries for that use.  The
>  *  current one may still be needed for csum info motion, in case that
>  *  takes up more than a whole block (is the csum info allowed to begin
>  *  partway through a block and continue into the following block?).
> 
> Having run into it now, I believe that the bug this comment alludes to
> is present.  See the "blkfree: bad size" panic in ffs_blkfree() - the
> fragnum()+numfrags()>fs->fs_frag condition is the one this is talking
> about.

"fragments are not allowed to span blocks." (daemonic book, page 280)

Pavel