diff options
| author | David Chinner <dgc@sgi.com> | 2008-04-10 12:21:59 +1000 | 
|---|---|---|
| committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-04-18 11:59:45 +1000 | 
| commit | 7c9ef85c5672ae316aafd7bbe0bbadebe90301e6 (patch) | |
| tree | 5f89b57f3872c4cceb534953d59a9a12ee60ef6a /fs/xfs | |
| parent | fc6149d8d9634814cdcd9283b8f2efd3359181df (diff) | |
| download | olio-linux-3.10-7c9ef85c5672ae316aafd7bbe0bbadebe90301e6.tar.xz olio-linux-3.10-7c9ef85c5672ae316aafd7bbe0bbadebe90301e6.zip  | |
[XFS] Catch errors returned from xfs_bmap_last_offset().
xfs_bmap_last_offset() can fail and return an error.
xfs_iomap_write_allocate() fails to detect and propagate the error.
SGI-PV: 980084
SGI-Modid: xfs-linux-melb:xfs-kern:30802a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Niv Sardi <xaiki@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs')
| -rw-r--r-- | fs/xfs/xfs_iomap.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index fde37f87d52..fb3cf119141 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c @@ -802,8 +802,11 @@ xfs_iomap_write_allocate(  			 */  			nimaps = 1;  			end_fsb = XFS_B_TO_FSB(mp, ip->i_size); -			xfs_bmap_last_offset(NULL, ip, &last_block, -				XFS_DATA_FORK); +			error = xfs_bmap_last_offset(NULL, ip, &last_block, +							XFS_DATA_FORK); +			if (error) +				goto trans_cancel; +  			last_block = XFS_FILEOFF_MAX(last_block, end_fsb);  			if ((map_start_fsb + count_fsb) > last_block) {  				count_fsb = last_block - map_start_fsb;  |