From 4add77dd36f02af79bc4c21c8775f7cc111e697c Mon Sep 17 00:00:00 2001 From: David Chinner Date: Thu, 19 Jul 2007 16:28:30 +1000 Subject: [PATCH] --- yaml --- r: 61875 b: refs/heads/master c: 91ebecc74eeeeea0a2aa50bf1964ec2214a229c9 h: refs/heads/master i: 61873: fd5e4db34260a1ccb813445180a6f2b26b61db0f 61871: cb6538c209e3ceb4a135e552cd277569740e5357 v: v3 --- [refs] | 2 +- trunk/fs/xfs/xfs_vnodeops.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index cfa040d73fa9..2b6fd7c9557c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4f57dbc6b5bae5a3978d429f45ac597ca7a3b8c6 +refs/heads/master: 91ebecc74eeeeea0a2aa50bf1964ec2214a229c9 diff --git a/trunk/fs/xfs/xfs_vnodeops.c b/trunk/fs/xfs/xfs_vnodeops.c index 79b522779aa4..401cb00a55d6 100644 --- a/trunk/fs/xfs/xfs_vnodeops.c +++ b/trunk/fs/xfs/xfs_vnodeops.c @@ -4434,9 +4434,12 @@ xfs_free_file_space( while (!error && !done) { /* - * allocate and setup the transaction + * allocate and setup the transaction. Allow this + * transaction to dip into the reserve blocks to ensure + * the freeing of the space succeeds at ENOSPC. */ tp = xfs_trans_alloc(mp, XFS_TRANS_DIOSTRAT); + tp->t_flags |= XFS_TRANS_RESERVE; error = xfs_trans_reserve(tp, resblks, XFS_WRITE_LOG_RES(mp),