Revision 4ce159890c00e2cc705e955a939bf1dca7b07ab8 authored by Dave Chinner on 27 January 2011, 01:17:58 UTC, committed by Alex Elder on 28 January 2011, 15:05:36 UTC
When doing delayed allocation, if the allocation size is for a
maximally sized extent, extent size alignment can push it over this
limit. This results in an assert failure in xfs_bmbt_set_allf() as
the extent length is too large to find in the extent record.

Fix this by ensuring that we allow for space that extent size
alignment requires (up to 2 * (extsize -1) blocks as we have to
handle both head and tail alignment) when limiting the maximum size
of the extent.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
1 parent 14b064c
Raw File
makelst
#!/bin/sh
# A script to dump mixed source code & assembly
# with correct relocations from System.map
# Requires the following lines in makefile:
#%.lst: %.c
#	$(CC) $(c_flags) -g -c -o $*.o $< &&
#	$(srctree)/scripts/makelst $*.o System.map $(OBJDUMP) > $@
#
# Copyright (C) 2000 IBM Corporation
# Author(s): DJ Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
#            William Stearns <wstearns@pobox.com>
#

# awk style field access
field() {
  shift $1 ; echo $1
}

t1=`$3 --syms $1 | grep .text | grep -m1 " F "`
if [ -n "$t1" ]; then
  t2=`field 6 $t1`
  if [ ! -r $2 ]; then
    echo "No System.map" >&2
  else
    t3=`grep $t2 $2`
    t4=`field 1 $t3`
    t5=`field 1 $t1`
    t6=`printf "%lu" $((0x$t4 - 0x$t5))`
  fi
fi
$3 -r --source --adjust-vma=${t6:-0} $1
back to top