]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: don't assert on delalloc regions beyond EOF
authorDave Chinner <dchinner@redhat.com>
Sun, 29 Apr 2012 11:16:17 +0000 (21:16 +1000)
committerBen Myers <bpm@sgi.com>
Mon, 14 May 2012 21:20:38 +0000 (16:20 -0500)
commit727a85d32c8512c4b5225d51b25bd31f8475730a
treefbb2ef5941ee428c4739c68d5616b082e09790db
parent27b848256044e6c259bc85bf20df669ceece5d20
xfs: don't assert on delalloc regions beyond EOF

When we are doing speculative delayed allocation beyond EOF,
conversion of the region allocated beyond EOF is dependent on the
largest free space extent available. If the largest free extent is
smaller than the delalloc range, then after allocation we leave
a delalloc extent that starts beyond EOF. This extent cannot *ever*
be converted by flushing data, and so will remain there until either
the EOF moves into the extent or it is truncated away.

Hence if xfs_getbmap() runs on such an inode and is asked to return
extents beyond EOF, it will assert fail on this extent even though
there is nothing xfs_getbmap() can do to convert it to a real
extent. Hence we should simply report these delalloc extents rather
than assert that there should be none.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_bmap.c