ext4: fix quota accounting during migration
The tmp_inode should have same uid/gid as the original inode. Otherwise new metadata blocks will be accounted to wrong quota-id, which will result in a quota leak after the inode migration is completed. Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:

committed by
Theodore Ts'o

parent
fba90ffee8
commit
5cb81dabcc
@@ -1754,7 +1754,7 @@ retry:
|
||||
if (IS_DIRSYNC(dir))
|
||||
ext4_handle_sync(handle);
|
||||
|
||||
inode = ext4_new_inode(handle, dir, mode, &dentry->d_name, 0);
|
||||
inode = ext4_new_inode(handle, dir, mode, &dentry->d_name, 0, NULL);
|
||||
err = PTR_ERR(inode);
|
||||
if (!IS_ERR(inode)) {
|
||||
inode->i_op = &ext4_file_inode_operations;
|
||||
@@ -1790,7 +1790,7 @@ retry:
|
||||
if (IS_DIRSYNC(dir))
|
||||
ext4_handle_sync(handle);
|
||||
|
||||
inode = ext4_new_inode(handle, dir, mode, &dentry->d_name, 0);
|
||||
inode = ext4_new_inode(handle, dir, mode, &dentry->d_name, 0, NULL);
|
||||
err = PTR_ERR(inode);
|
||||
if (!IS_ERR(inode)) {
|
||||
init_special_inode(inode, inode->i_mode, rdev);
|
||||
@@ -1830,7 +1830,7 @@ retry:
|
||||
ext4_handle_sync(handle);
|
||||
|
||||
inode = ext4_new_inode(handle, dir, S_IFDIR | mode,
|
||||
&dentry->d_name, 0);
|
||||
&dentry->d_name, 0, NULL);
|
||||
err = PTR_ERR(inode);
|
||||
if (IS_ERR(inode))
|
||||
goto out_stop;
|
||||
@@ -2277,7 +2277,7 @@ retry:
|
||||
ext4_handle_sync(handle);
|
||||
|
||||
inode = ext4_new_inode(handle, dir, S_IFLNK|S_IRWXUGO,
|
||||
&dentry->d_name, 0);
|
||||
&dentry->d_name, 0, NULL);
|
||||
err = PTR_ERR(inode);
|
||||
if (IS_ERR(inode))
|
||||
goto out_stop;
|
||||
|
Reference in New Issue
Block a user