On Thu, Mar 21, 2013 at 12:12:51PM +0800, Jeff Liu wrote: > In growfs operation, the unused parts of superblocks in the latest old AG are > zero filled, hence we can safely read the secondary superblock buffer of it > rather than getting a new buffer for it again. >From the code: oagcount = mp->m_sb.sb_agcount; And because the AG indexes are zero numbered, the index of the last original AGs is (oagcount - 1). Hence we shoul donly be reading from the AG headers if the current AG index is less than oagcount. > This is a small refinement for commits 1375cb65. > > Cc: Dave Chinner <david@xxxxxxxxxxxxx> > Signed-off-by: Jie Liu <jeff.liu@xxxxxxxxxx> > --- > fs/xfs/xfs_fsops.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c > index 94eaeed..7d435dd 100644 > --- a/fs/xfs/xfs_fsops.c > +++ b/fs/xfs/xfs_fsops.c > @@ -449,7 +449,7 @@ xfs_growfs_data_private( > * disk as the contents of the new area we are growing into is > * completely unknown. > */ > - if (agno < oagcount) { > + if (agno <= oagcount) { With this change, when agno == oagcount we are one AG beyond the original filesystem size and so if we read that space, we are reading uninitialised data. AFAICT, the current code is correct... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs