[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
					
				| @ -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 New Issue
	
	Block a user