tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: A brelse() in FFS...



On 13 Feb 2015, at 19:18, Maxime Villard <max%M00nBSD.net@localhost> wrote:

> Hi,
> this may be a stupid question; in ufs/ffs/ffs_vfsops.c, l.1153:
> 
> 	if (fs->fs_sbsize < SBLOCKSIZE)
> 		brelse(bp, BC_INVAL);
> 	else
> 		brelse(bp, 0);
> 
> However 'fs->fs_sbsize' is *always* smaller than SBLOCKSIZE. So only
> the first branch is reached.

It may be equal to SBLOCKSIZE.  The BC_INVAL is here to not keep
the buffer in cache.  It may be read later with a size greater fs_sbsize
and would break buffer cache invariance (blocks are always read with the
same size).

> I don't understand what the BC_INVAL flag means, and its definition
> in sys/buf.h is not very enlightening:
> 
> 	#define	BC_INVAL	0x00002000	/* Does not contain valid info. */
> 
> Which branch do I keep?

Both.

--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig (Germany)



Home | Main Index | Thread Index | Old Index