diff options
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_lrw.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c index 67b5e1c20deb..6fbdca3eaa7a 100644 --- a/fs/xfs/linux-2.6/xfs_lrw.c +++ b/fs/xfs/linux-2.6/xfs_lrw.c | |||
@@ -510,7 +510,6 @@ xfs_zero_eof( | |||
510 | xfs_fileoff_t end_zero_fsb; | 510 | xfs_fileoff_t end_zero_fsb; |
511 | xfs_fileoff_t zero_count_fsb; | 511 | xfs_fileoff_t zero_count_fsb; |
512 | xfs_fileoff_t last_fsb; | 512 | xfs_fileoff_t last_fsb; |
513 | xfs_extlen_t buf_len_fsb; | ||
514 | xfs_mount_t *mp = io->io_mount; | 513 | xfs_mount_t *mp = io->io_mount; |
515 | int nimaps; | 514 | int nimaps; |
516 | int error = 0; | 515 | int error = 0; |
@@ -579,16 +578,7 @@ xfs_zero_eof( | |||
579 | } | 578 | } |
580 | 579 | ||
581 | /* | 580 | /* |
582 | * There are blocks in the range requested. | 581 | * There are blocks we need to zero. |
583 | * Zero them a single write at a time. We actually | ||
584 | * don't zero the entire range returned if it is | ||
585 | * too big and simply loop around to get the rest. | ||
586 | * That is not the most efficient thing to do, but it | ||
587 | * is simple and this path should not be exercised often. | ||
588 | */ | ||
589 | buf_len_fsb = XFS_FILBLKS_MIN(imap.br_blockcount, | ||
590 | mp->m_writeio_blocks << 8); | ||
591 | /* | ||
592 | * Drop the inode lock while we're doing the I/O. | 582 | * Drop the inode lock while we're doing the I/O. |
593 | * We'll still have the iolock to protect us. | 583 | * We'll still have the iolock to protect us. |
594 | */ | 584 | */ |
@@ -596,14 +586,13 @@ xfs_zero_eof( | |||
596 | 586 | ||
597 | error = xfs_iozero(ip, | 587 | error = xfs_iozero(ip, |
598 | XFS_FSB_TO_B(mp, start_zero_fsb), | 588 | XFS_FSB_TO_B(mp, start_zero_fsb), |
599 | XFS_FSB_TO_B(mp, buf_len_fsb), | 589 | XFS_FSB_TO_B(mp, imap.br_blockcount), |
600 | end_size); | 590 | end_size); |
601 | |||
602 | if (error) { | 591 | if (error) { |
603 | goto out_lock; | 592 | goto out_lock; |
604 | } | 593 | } |
605 | 594 | ||
606 | start_zero_fsb = imap.br_startoff + buf_len_fsb; | 595 | start_zero_fsb = imap.br_startoff + imap.br_blockcount; |
607 | ASSERT(start_zero_fsb <= (end_zero_fsb + 1)); | 596 | ASSERT(start_zero_fsb <= (end_zero_fsb + 1)); |
608 | 597 | ||
609 | XFS_ILOCK(mp, io, XFS_ILOCK_EXCL|XFS_EXTSIZE_RD); | 598 | XFS_ILOCK(mp, io, XFS_ILOCK_EXCL|XFS_EXTSIZE_RD); |