On Tue, Mar 27, 2012 at 02:44:38PM +0800, Liu Bo wrote: > We need to clean a VACANCY em(if we have) when we fail to start a transaction. > > Signed-off-by: Liu Bo <liubo2009@xxxxxxxxxxxxxx> > --- > fs/btrfs/inode.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c > index bacf441..2b2f0b6 100644 > --- a/fs/btrfs/inode.c > +++ b/fs/btrfs/inode.c > @@ -3406,9 +3406,6 @@ int btrfs_cont_expand(struct inode *inode, loff_t oldsize, loff_t size) > break; > } > > - btrfs_drop_extent_cache(inode, hole_start, > - last_byte - 1, 0); > - > btrfs_update_inode(trans, root, inode); > btrfs_end_transaction(trans, root); > } > @@ -3419,6 +3416,9 @@ int btrfs_cont_expand(struct inode *inode, loff_t oldsize, loff_t size) > break; > } > > + if (em && test_bit(EXTENT_FLAG_VACANCY, &em->flags)) > + btrfs_drop_extent_cache(inode, hole_start, last_byte - 1, 0); > + Hmmm, last_byte isn't always setup at this point (uninit variable). I'm a little uncertain about what this one is fixing? -chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
