From 57b3b87a465ade0a359e458f90b069411d57da7c Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 23 Feb 2009 23:05:27 -0500 Subject: [PATCH] --- yaml --- r: 139493 b: refs/heads/master c: 8750c6d5fcbd3342b3d908d157f81d345c5325a7 h: refs/heads/master i: 139491: 65428113092d96af28982f8c7ae6aa5a809c183c v: v3 --- [refs] | 2 +- trunk/fs/ext4/namei.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 916c9ef1c64f..c5c3195022d5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7d8f9f7d150dded7b68e61ca6403a1f166fb4edf +refs/heads/master: 8750c6d5fcbd3342b3d908d157f81d345c5325a7 diff --git a/trunk/fs/ext4/namei.c b/trunk/fs/ext4/namei.c index 6e1ad68cdc7a..eb20246c8965 100644 --- a/trunk/fs/ext4/namei.c +++ b/trunk/fs/ext4/namei.c @@ -2357,7 +2357,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, struct inode *old_inode, *new_inode; struct buffer_head *old_bh, *new_bh, *dir_bh; struct ext4_dir_entry_2 *old_de, *new_de; - int retval; + int retval, force_da_alloc = 0; old_bh = new_bh = dir_bh = NULL; @@ -2497,6 +2497,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, ext4_mark_inode_dirty(handle, new_inode); if (!new_inode->i_nlink) ext4_orphan_add(handle, new_inode); + force_da_alloc = 1; } retval = 0; @@ -2505,6 +2506,8 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, brelse(old_bh); brelse(new_bh); ext4_journal_stop(handle); + if (retval == 0 && force_da_alloc) + ext4_alloc_da_blocks(old_inode); return retval; }