forked from Minki/linux
- Fix for a potential infinite loop which was introduced in 4d559a3bcb
- Fix for the return type of xfs_iomap_eof_prealloc_initial_size froma1e16c2666
- Fix for a failed buffer readahead causing subsequent callers to fail incorrectly -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJRSOIAAAoJENaLyazVq6ZODqQP/2m1iZVIA9CXFf5hS2QZgkc2 MHq+QaQ1aaZlAIRCnZO4XrWoLw4tH7AmsHA7dVJVz/ZhVrJg4ahfdSS6qR5EGWFb I5uE8LD8ZhpIiW6mBytJ7g9ST6xnaeean2sMwa0BcVK3uF84nO/uBopntZVrVlZE sMuklZe8GfxDpF6SBxVGG+5+OeLXzFmf+s+xoCYN410uuzYoT8/jveFP6a5ARcmH xEcOJA2+3o2z4/fsdx/Euf6LnDMSyOsAFUJCtnmBdKUA5w9DrJJqGpDDPEkg9h6d /DTPYXEWx6+w4xoMnIf09oEdCSamBVTWcRFXtftN03VNrbRNtyVwAc8HUaSNmt0p I3P/b5NJ5guH7uK72jp61N2RP7D5KOqwkwR58Y1SJWuwcgatYuB3NM5UeUyJBILj ViZ4DsKGE6BCl8T3hwkN+mxSxB+o7O8AypjWdEviBXbVIG9CwOxr1IEatl3eyV5T 8QsNFb0LJcWzl1+F/uUYe1Goeqxvzupt7omUaRONdMnac3uFIk0ARrdxXFgawIJ9 lgeftBCmMkqqLZUACSfmfCYNwyupz3E6bYB7Azwx01qg7CzTPUfIL2SxqDYp2dup /s+R7HL4HOJ0FCzjCZxHHO/1jsWgu265dJdpaQw/UcIe2IuEFGr558deHEM62bDW rWCVHj5eY5NRGyzSwzqB =41Vk -----END PGP SIGNATURE----- Merge tag 'for-linus-v3.9-rc4' of git://oss.sgi.com/xfs/xfs Pull XFS fixes from Ben Myers: - Fix for a potential infinite loop which was introduced in commit4d559a3bcb
("xfs: limit speculative prealloc near ENOSPC thresholds") - Fix for the return type of xfs_iomap_eof_prealloc_initial_size from commita1e16c2666
("xfs: limit speculative prealloc size on sparse files") - Fix for a failed buffer readahead causing subsequent callers to fail incorrectly * tag 'for-linus-v3.9-rc4' of git://oss.sgi.com/xfs/xfs: xfs: ensure we capture IO errors correctly xfs: fix xfs_iomap_eof_prealloc_initial_size type xfs: fix potential infinite loop in xfs_iomap_prealloc_size()
This commit is contained in:
commit
10b38669d6
@ -1334,6 +1334,12 @@ _xfs_buf_ioapply(
|
|||||||
int size;
|
int size;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Make sure we capture only current IO errors rather than stale errors
|
||||||
|
* left over from previous use of the buffer (e.g. failed readahead).
|
||||||
|
*/
|
||||||
|
bp->b_error = 0;
|
||||||
|
|
||||||
if (bp->b_flags & XBF_WRITE) {
|
if (bp->b_flags & XBF_WRITE) {
|
||||||
if (bp->b_flags & XBF_SYNCIO)
|
if (bp->b_flags & XBF_SYNCIO)
|
||||||
rw = WRITE_SYNC;
|
rw = WRITE_SYNC;
|
||||||
|
@ -325,7 +325,7 @@ xfs_iomap_eof_want_preallocate(
|
|||||||
* rather than falling short due to things like stripe unit/width alignment of
|
* rather than falling short due to things like stripe unit/width alignment of
|
||||||
* real extents.
|
* real extents.
|
||||||
*/
|
*/
|
||||||
STATIC int
|
STATIC xfs_fsblock_t
|
||||||
xfs_iomap_eof_prealloc_initial_size(
|
xfs_iomap_eof_prealloc_initial_size(
|
||||||
struct xfs_mount *mp,
|
struct xfs_mount *mp,
|
||||||
struct xfs_inode *ip,
|
struct xfs_inode *ip,
|
||||||
@ -413,7 +413,7 @@ xfs_iomap_prealloc_size(
|
|||||||
* have a large file on a small filesystem and the above
|
* have a large file on a small filesystem and the above
|
||||||
* lowspace thresholds are smaller than MAXEXTLEN.
|
* lowspace thresholds are smaller than MAXEXTLEN.
|
||||||
*/
|
*/
|
||||||
while (alloc_blocks >= freesp)
|
while (alloc_blocks && alloc_blocks >= freesp)
|
||||||
alloc_blocks >>= 4;
|
alloc_blocks >>= 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user