提交 3bdbfb10 编写于 作者: D David Chinner 提交者: Nathan Scott

[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: NDavid Chinner <dgc@sgi.com>
Signed-off-by: NNathan Scott <nathans@sgi.com>
上级 bcec2b7f
......@@ -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))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册