[XFS] Prevent the incore superblock sb_fdblocks count from leaking when we
are getting ENOSPC errors on writes. When we fail to allocate space for indirect blocks in xfs_bmapi() make sure we release the direct block allocation before returning. SGI-PV: 938502 SGI-Modid: xfs-linux:xfs-kern:22986a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:
parent
bcec2b7f2b
commit
3bdbfb104e
1 changed files with 11 additions and 1 deletions
|
@ -4754,10 +4754,20 @@ xfs_bmapi(
|
|||
error = xfs_mod_incore_sb(mp,
|
||||
XFS_SBS_FDBLOCKS,
|
||||
-(alen), rsvd);
|
||||
if (!error)
|
||||
if (!error) {
|
||||
error = xfs_mod_incore_sb(mp,
|
||||
XFS_SBS_FDBLOCKS,
|
||||
-(indlen), rsvd);
|
||||
if (error && rt) {
|
||||
xfs_mod_incore_sb(ip->i_mount,
|
||||
XFS_SBS_FREXTENTS,
|
||||
extsz, rsvd);
|
||||
} else if (error) {
|
||||
xfs_mod_incore_sb(ip->i_mount,
|
||||
XFS_SBS_FDBLOCKS,
|
||||
alen, rsvd);
|
||||
}
|
||||
}
|
||||
|
||||
if (error) {
|
||||
if (XFS_IS_QUOTA_ON(ip->i_mount))
|
||||
|
|
Loading…
Reference in a new issue