summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_trans.c
diff options
context:
space:
mode:
authorEryu Guan <eguan@redhat.com>2016-09-13 23:39:07 +0200
committerDave Chinner <david@fromorbit.com>2016-09-13 23:39:07 +0200
commita27f6ef4e636c2437090b87c4eb0f587b60d7123 (patch)
tree68ea5e98ff38af2200c698d599368780cbae099c /fs/xfs/xfs_trans.c
parentxfs: track log done items directly in the deferred pending work item (diff)
downloadlinux-a27f6ef4e636c2437090b87c4eb0f587b60d7123.tar.xz
linux-a27f6ef4e636c2437090b87c4eb0f587b60d7123.zip
xfs: undo block reservation correctly in xfs_trans_reserve()
"blocks" should be added back to fdblocks at undo time, not taken away, i.e. the minus sign should not be used. This is a regression introduced by commit 0d485ada404b ("xfs: use generic percpu counters for free block counter"). And it's found by code inspection, I didn't it in real world, so there's no reproducer. Signed-off-by: Eryu Guan <eguan@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/xfs_trans.c')
-rw-r--r--fs/xfs/xfs_trans.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
index 5f3d33d16e67..836eb807aa88 100644
--- a/fs/xfs/xfs_trans.c
+++ b/fs/xfs/xfs_trans.c
@@ -217,7 +217,7 @@ undo_log:
undo_blocks:
if (blocks > 0) {
- xfs_mod_fdblocks(tp->t_mountp, -((int64_t)blocks), rsvd);
+ xfs_mod_fdblocks(tp->t_mountp, (int64_t)blocks, rsvd);
tp->t_blk_res = 0;
}