Prev: [PATCH] usb-serial: add ID for ZTE MF 330
Next: [PATCH 3/3] perf: Make the trace events sample period default to 1
From: Dave Kleikamp on 14 Apr 2010 16:10 On Wed, 2010-04-14 at 15:56 -0400, Bill Pemberton wrote: > Resizing the filesystem would result in an diAllocExt error in some > instances because changes in bmp->db_agsize would not get noticed if > goto extendBmap was called. Awesome! This bug has been frustrating me for a while, but I hadn't chased it down to the root cause. I'll give a bit of a test and push it upstream! Thanks, Shaggy > > Signed-off-by: Bill Pemberton <wfp5p(a)virginia.edu> > --- > fs/jfs/resize.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/fs/jfs/resize.c b/fs/jfs/resize.c > index 7f24a0b..1aba003 100644 > --- a/fs/jfs/resize.c > +++ b/fs/jfs/resize.c > @@ -81,6 +81,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize) > struct inode *iplist[1]; > struct jfs_superblock *j_sb, *j_sb2; > uint old_agsize; > + int agsizechanged = 0; > struct buffer_head *bh, *bh2; > > /* If the volume hasn't grown, get out now */ > @@ -333,6 +334,9 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize) > */ > if ((rc = dbExtendFS(ipbmap, XAddress, nblocks))) > goto error_out; > + > + agsizechanged |= (bmp->db_agsize != old_agsize); > + > /* > * the map now has extended to cover additional nblocks: > * dn_mapsize = oldMapsize + nblocks; > @@ -432,7 +436,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize) > * will correctly identify the new ag); > */ > /* if new AG size the same as old AG size, done! */ > - if (bmp->db_agsize != old_agsize) { > + if (agsizechanged) { > if ((rc = diExtendFS(ipimap, ipbmap))) > goto error_out; > -- Dave Kleikamp IBM Linux Technology Center -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |