summaryrefslogtreecommitdiffstats
path: root/fs/fscache
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2010-08-24 11:45:53 +1000
committerDave Chinner <david@fromorbit.com>2010-08-24 11:45:53 +1000
commit3b93c7aaefc05ee2a75e2726929b01a321402984 (patch)
tree736a4017e86d65598ae7b30cb11412afd66f9629 /fs/fscache
parenta44f13edf0ebb4e41942d0f16ca80489dcf6659d (diff)
xfs: don't do memory allocation under the CIL context lock
Formatting items requires memory allocation when using delayed logging. Currently that memory allocation is done while holding the CIL context lock in read mode. This means that if memory allocation takes some time (e.g. enters reclaim), we cannot push on the CIL until the allocation(s) required by formatting complete. This can stall CIL pushes for some time, and once a push is stalled so are all new transaction commits. Fix this splitting the item formatting into two steps. The first step which does the allocation and memcpy() into the allocated buffer is now done outside the CIL context lock, and only the CIL insert is done inside the CIL context lock. This avoids the stall issue. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/fscache')
0 files changed, 0 insertions, 0 deletions