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>
This commit is contained in:
@@ -456,11 +456,14 @@ int ext4_ext_migrate(struct inode *inode)
|
|||||||
*/
|
*/
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Worst case we can touch the allocation bitmaps, a bgd
|
||||||
|
* block, and a block to link in the orphan list. We do need
|
||||||
|
* need to worry about credits for modifying the quota inode.
|
||||||
|
*/
|
||||||
handle = ext4_journal_start(inode, EXT4_HT_MIGRATE,
|
handle = ext4_journal_start(inode, EXT4_HT_MIGRATE,
|
||||||
EXT4_DATA_TRANS_BLOCKS(inode->i_sb) +
|
4 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
|
||||||
EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 +
|
|
||||||
EXT4_MAXQUOTAS_INIT_BLOCKS(inode->i_sb)
|
|
||||||
+ 1);
|
|
||||||
if (IS_ERR(handle)) {
|
if (IS_ERR(handle)) {
|
||||||
retval = PTR_ERR(handle);
|
retval = PTR_ERR(handle);
|
||||||
return retval;
|
return retval;
|
||||||
|
Reference in New Issue
Block a user