On Tue, Jun 02, 2015 at 07:30:05PM +0200, Lukas Czerner wrote: > Currently ext4_mb_good_group() only returns 0 or 1 depending on whether > the allocation group is suitable for use or not. However we might get > various errors and fail while initializing new group including -EIO > which would never get propagated up the call chain. This might lead to > an endless loop at writeback when we're trying to find a good group to > allocate from and we fail to initialize new group (read error for > example). > > Fix this by returning proper error code from ext4_mb_good_group() and > using it in ext4_mb_regular_allocator(). In ext4_mb_regular_allocator() > we will always return only the first occurred error from > ext4_mb_good_group() and we only propagate it back to the caller if we > do not get any other errors and we fail to allocate any blocks. > > Note that with other modes than errors=continue, we will fail > immediately in ext4_mb_good_group() in case of error, however with > errors=continue we should try to continue using the file system, that's > why we're not going to fail immediately when we see an error from > ext4_mb_good_group(), but rather when we fail to find a suitable block > group to allocate from due to an problem in group initialization. > > Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx> > Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Applied, thanks. - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html