diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-05-11 14:44:27 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-05-11 14:44:31 +0200 | 
| commit | 41fb454ebe6024f5c1e3b3cbc0abc0da762e7b51 (patch) | |
| tree | 51c50bcb67a5039448ddfa1869d7948cab1217e9 /fs/xfs/xfs_vnodeops.c | |
| parent | 19c1a6f5764d787113fa323ffb18be7991208f82 (diff) | |
| parent | 091bf7624d1c90cec9e578a18529f615213ff847 (diff) | |
Merge commit 'v2.6.30-rc5' into core/iommu
Merge reason: core/iommu was on an .30-rc1 base,
              update it to .30-rc5 to refresh.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'fs/xfs/xfs_vnodeops.c')
| -rw-r--r-- | fs/xfs/xfs_vnodeops.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 7394c7af5de..19cf90a9c76 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -1457,6 +1457,13 @@ xfs_create(  	error = xfs_trans_reserve(tp, resblks, log_res, 0,  			XFS_TRANS_PERM_LOG_RES, log_count);  	if (error == ENOSPC) { +		/* flush outstanding delalloc blocks and retry */ +		xfs_flush_inodes(dp); +		error = xfs_trans_reserve(tp, resblks, XFS_CREATE_LOG_RES(mp), 0, +			XFS_TRANS_PERM_LOG_RES, XFS_CREATE_LOG_COUNT); +	} +	if (error == ENOSPC) { +		/* No space at all so try a "no-allocation" reservation */  		resblks = 0;  		error = xfs_trans_reserve(tp, 0, log_res, 0,  				XFS_TRANS_PERM_LOG_RES, log_count);  | 
