[XFS] Fix a project quota space accounting leak on rename.
SGI-PV: 951636 SGI-Modid: xfs-linux-melb:xfs-kern:25811a Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:
Родитель
d08d389d5a
Коммит
b1ecdda931
|
@ -316,6 +316,18 @@ xfs_rename(
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If we are using project inheritance, we only allow renames
|
||||
* into our tree when the project IDs are the same; else the
|
||||
* tree quota mechanism would be circumvented.
|
||||
*/
|
||||
if (unlikely((target_dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) &&
|
||||
(target_dp->i_d.di_projid != src_ip->i_d.di_projid))) {
|
||||
error = XFS_ERROR(EXDEV);
|
||||
xfs_rename_unlock4(inodes, XFS_ILOCK_SHARED);
|
||||
goto rele_return;
|
||||
}
|
||||
|
||||
new_parent = (src_dp != target_dp);
|
||||
src_is_directory = ((src_ip->i_d.di_mode & S_IFMT) == S_IFDIR);
|
||||
|
||||
|
|
|
@ -2663,7 +2663,7 @@ xfs_link(
|
|||
*/
|
||||
if (unlikely((tdp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) &&
|
||||
(tdp->i_d.di_projid != sip->i_d.di_projid))) {
|
||||
error = XFS_ERROR(EPERM);
|
||||
error = XFS_ERROR(EXDEV);
|
||||
goto error_return;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче