diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2011-02-04 21:46:43 +0300 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2011-02-04 21:46:43 +0300 |
commit | c64eae9a73a847c1698f913c893aa4012d2a30b0 (patch) | |
tree | 732684b9ffe9dfd6e9a11b1f006eaaefeb0e945b /fs/xfs/xfs_iomap.c | |
parent | c9e358dfc4a8cb2227172ef77908c2e0ee17bcb9 (diff) | |
parent | ebf53826e105f488f4f628703a108e98940d1dc5 (diff) | |
download | linux-c64eae9a73a847c1698f913c893aa4012d2a30b0.tar.xz |
Merge commit 'v2.6.38-rc3' into devicetree/next
Diffstat (limited to 'fs/xfs/xfs_iomap.c')
-rw-r--r-- | fs/xfs/xfs_iomap.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 55582bd66659..8a0f044750c3 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c @@ -337,7 +337,12 @@ xfs_iomap_prealloc_size( int shift = 0; int64_t freesp; - alloc_blocks = XFS_B_TO_FSB(mp, ip->i_size); + /* + * rounddown_pow_of_two() returns an undefined result + * if we pass in alloc_blocks = 0. Hence the "+ 1" to + * ensure we always pass in a non-zero value. + */ + alloc_blocks = XFS_B_TO_FSB(mp, ip->i_size) + 1; alloc_blocks = XFS_FILEOFF_MIN(MAXEXTLEN, rounddown_pow_of_two(alloc_blocks)); |