diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2009-05-20 09:02:28 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2009-05-20 09:02:28 +0200 | 
| commit | 521c180874dae86f675d23c4eade4dba8b1f2cc8 (patch) | |
| tree | 7509303da3a9a1b40a26f6811f321c89cd31737b /fs/xfs/xfs_vnodeops.c | |
| parent | f1a11e0576c7a73d759d05d776692b2b2d37172b (diff) | |
| parent | 64d1304a64477629cb16b75491a77bafe6f86963 (diff) | |
Merge branch 'core/urgent' into core/futexes
Merge reason: this branch was on an pre -rc1 base, merge it up to -rc6+
              to get the latest upstream fixes.
Conflicts:
	kernel/futex.c
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
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);  | 
