aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2013-02-09 12:50:27 -0500
committerTheodore Ts'o <tytso@mit.edu>2013-02-09 12:50:27 -0500
commit4b217630d0ec277c961e57f6d2985433b352c2ce (patch)
treef3c5b921d2dd825677b73ee4d4fb97c586d7661a /fs/ext4
parent8dcfaad244cdfa245cc2b4ddf42cea5fd8b80ece (diff)
ext4: fix the number of credits needed for ext4_ext_migrate()
The migration ioctl creates a temporary inode. Since this inode is never linked to a directory, we don't need to reserve journal credits required for modifying the directory. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Reviewed-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/migrate.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c
index 4e4fcfd342f8..480acf4a085f 100644
--- a/fs/ext4/migrate.c
+++ b/fs/ext4/migrate.c
@@ -456,11 +456,14 @@ int ext4_ext_migrate(struct inode *inode)
456 */ 456 */
457 return retval; 457 return retval;
458 458
459 /*
460 * Worst case we can touch the allocation bitmaps, a bgd
461 * block, and a block to link in the orphan list. We do need
462 * need to worry about credits for modifying the quota inode.
463 */
459 handle = ext4_journal_start(inode, EXT4_HT_MIGRATE, 464 handle = ext4_journal_start(inode, EXT4_HT_MIGRATE,
460 EXT4_DATA_TRANS_BLOCKS(inode->i_sb) + 465 4 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
461 EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 + 466
462 EXT4_MAXQUOTAS_INIT_BLOCKS(inode->i_sb)
463 + 1);
464 if (IS_ERR(handle)) { 467 if (IS_ERR(handle)) {
465 retval = PTR_ERR(handle); 468 retval = PTR_ERR(handle);
466 return retval; 469 return retval;