diff options
author | David Chinner <dgc@sgi.com> | 2007-11-23 16:29:11 +1100 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-02-07 18:15:55 +1100 |
commit | e4143a1cf5973e3443c0650fc4c35292d3b7baa8 (patch) | |
tree | 320e3fcd98e8a17e250272c01c4518524ce255b0 /fs/xfs/xfs_inode.c | |
parent | 786f486f8154b94b36182d2b53df3bf2b40d85e7 (diff) |
[XFS] Fix transaction overrun during writeback.
Prevent transaction overrun in xfs_iomap_write_allocate() if we race with
a truncate that overlaps the delalloc range we were planning to allocate.
If we race, we may allocate into a hole and that requires block
allocation. At this point in time we don't have a reservation for block
allocation (apart from metadata blocks) and so allocating into a hole
rather than a delalloc region results in overflowing the transaction block
reservation.
Fix it by only allowing a single extent to be allocated at a time.
SGI-PV: 972757
SGI-Modid: xfs-linux-melb:xfs-kern:30005a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_inode.c')
0 files changed, 0 insertions, 0 deletions