diff options
Diffstat (limited to 'fs/xfs/xfs_iomap.c')
-rw-r--r-- | fs/xfs/xfs_iomap.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 4821b8563c41..d16f40cdf5f6 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c | |||
@@ -57,8 +57,6 @@ xfs_iomap_enter_trace( | |||
57 | xfs_off_t offset, | 57 | xfs_off_t offset, |
58 | ssize_t count) | 58 | ssize_t count) |
59 | { | 59 | { |
60 | xfs_iocore_t *io = &ip->i_iocore; | ||
61 | |||
62 | if (!ip->i_rwtrace) | 60 | if (!ip->i_rwtrace) |
63 | return; | 61 | return; |
64 | 62 | ||
@@ -70,8 +68,8 @@ xfs_iomap_enter_trace( | |||
70 | (void *)((unsigned long)((offset >> 32) & 0xffffffff)), | 68 | (void *)((unsigned long)((offset >> 32) & 0xffffffff)), |
71 | (void *)((unsigned long)(offset & 0xffffffff)), | 69 | (void *)((unsigned long)(offset & 0xffffffff)), |
72 | (void *)((unsigned long)count), | 70 | (void *)((unsigned long)count), |
73 | (void *)((unsigned long)((io->io_new_size >> 32) & 0xffffffff)), | 71 | (void *)((unsigned long)((ip->i_new_size >> 32) & 0xffffffff)), |
74 | (void *)((unsigned long)(io->io_new_size & 0xffffffff)), | 72 | (void *)((unsigned long)(ip->i_new_size & 0xffffffff)), |
75 | (void *)((unsigned long)current_pid()), | 73 | (void *)((unsigned long)current_pid()), |
76 | (void *)NULL, | 74 | (void *)NULL, |
77 | (void *)NULL, | 75 | (void *)NULL, |
@@ -186,8 +184,6 @@ xfs_iomap( | |||
186 | int iomap_flags = 0; | 184 | int iomap_flags = 0; |
187 | 185 | ||
188 | ASSERT((ip->i_d.di_mode & S_IFMT) == S_IFREG); | 186 | ASSERT((ip->i_d.di_mode & S_IFMT) == S_IFREG); |
189 | ASSERT(((ip->i_d.di_flags & XFS_DIFLAG_REALTIME) != 0) == | ||
190 | ((ip->i_iocore.io_flags & XFS_IOCORE_RT) != 0)); | ||
191 | 187 | ||
192 | if (XFS_FORCED_SHUTDOWN(mp)) | 188 | if (XFS_FORCED_SHUTDOWN(mp)) |
193 | return XFS_ERROR(EIO); | 189 | return XFS_ERROR(EIO); |
@@ -402,7 +398,6 @@ xfs_iomap_write_direct( | |||
402 | int found) | 398 | int found) |
403 | { | 399 | { |
404 | xfs_mount_t *mp = ip->i_mount; | 400 | xfs_mount_t *mp = ip->i_mount; |
405 | xfs_iocore_t *io = &ip->i_iocore; | ||
406 | xfs_fileoff_t offset_fsb; | 401 | xfs_fileoff_t offset_fsb; |
407 | xfs_fileoff_t last_fsb; | 402 | xfs_fileoff_t last_fsb; |
408 | xfs_filblks_t count_fsb, resaligned; | 403 | xfs_filblks_t count_fsb, resaligned; |
@@ -432,8 +427,8 @@ xfs_iomap_write_direct( | |||
432 | extsz = xfs_get_extsz_hint(ip); | 427 | extsz = xfs_get_extsz_hint(ip); |
433 | 428 | ||
434 | isize = ip->i_size; | 429 | isize = ip->i_size; |
435 | if (io->io_new_size > isize) | 430 | if (ip->i_new_size > isize) |
436 | isize = io->io_new_size; | 431 | isize = ip->i_new_size; |
437 | 432 | ||
438 | offset_fsb = XFS_B_TO_FSBT(mp, offset); | 433 | offset_fsb = XFS_B_TO_FSBT(mp, offset); |
439 | last_fsb = XFS_B_TO_FSB(mp, ((xfs_ufsize_t)(offset + count))); | 434 | last_fsb = XFS_B_TO_FSB(mp, ((xfs_ufsize_t)(offset + count))); |
@@ -528,7 +523,8 @@ xfs_iomap_write_direct( | |||
528 | goto error_out; | 523 | goto error_out; |
529 | } | 524 | } |
530 | 525 | ||
531 | if (unlikely(!imap.br_startblock && !(io->io_flags & XFS_IOCORE_RT))) { | 526 | if (unlikely(!imap.br_startblock && |
527 | !(ip->i_d.di_flags & XFS_DIFLAG_REALTIME))) { | ||
532 | error = xfs_cmn_err_fsblock_zero(ip, &imap); | 528 | error = xfs_cmn_err_fsblock_zero(ip, &imap); |
533 | goto error_out; | 529 | goto error_out; |
534 | } | 530 | } |
@@ -616,7 +612,6 @@ xfs_iomap_write_delay( | |||
616 | int *nmaps) | 612 | int *nmaps) |
617 | { | 613 | { |
618 | xfs_mount_t *mp = ip->i_mount; | 614 | xfs_mount_t *mp = ip->i_mount; |
619 | xfs_iocore_t *io = &ip->i_iocore; | ||
620 | xfs_fileoff_t offset_fsb; | 615 | xfs_fileoff_t offset_fsb; |
621 | xfs_fileoff_t last_fsb; | 616 | xfs_fileoff_t last_fsb; |
622 | xfs_off_t aligned_offset; | 617 | xfs_off_t aligned_offset; |
@@ -644,8 +639,8 @@ xfs_iomap_write_delay( | |||
644 | 639 | ||
645 | retry: | 640 | retry: |
646 | isize = ip->i_size; | 641 | isize = ip->i_size; |
647 | if (io->io_new_size > isize) | 642 | if (ip->i_new_size > isize) |
648 | isize = io->io_new_size; | 643 | isize = ip->i_new_size; |
649 | 644 | ||
650 | error = xfs_iomap_eof_want_preallocate(mp, ip, isize, offset, count, | 645 | error = xfs_iomap_eof_want_preallocate(mp, ip, isize, offset, count, |
651 | ioflag, imap, XFS_WRITE_IMAPS, &prealloc); | 646 | ioflag, imap, XFS_WRITE_IMAPS, &prealloc); |
@@ -691,7 +686,8 @@ retry: | |||
691 | goto retry; | 686 | goto retry; |
692 | } | 687 | } |
693 | 688 | ||
694 | if (unlikely(!imap[0].br_startblock && !(io->io_flags & XFS_IOCORE_RT))) | 689 | if (unlikely(!imap[0].br_startblock && |
690 | !(ip->i_d.di_flags & XFS_DIFLAG_REALTIME))) | ||
695 | return xfs_cmn_err_fsblock_zero(ip, &imap[0]); | 691 | return xfs_cmn_err_fsblock_zero(ip, &imap[0]); |
696 | 692 | ||
697 | *ret_imap = imap[0]; | 693 | *ret_imap = imap[0]; |
@@ -716,7 +712,6 @@ xfs_iomap_write_allocate( | |||
716 | int *retmap) | 712 | int *retmap) |
717 | { | 713 | { |
718 | xfs_mount_t *mp = ip->i_mount; | 714 | xfs_mount_t *mp = ip->i_mount; |
719 | xfs_iocore_t *io = &ip->i_iocore; | ||
720 | xfs_fileoff_t offset_fsb, last_block; | 715 | xfs_fileoff_t offset_fsb, last_block; |
721 | xfs_fileoff_t end_fsb, map_start_fsb; | 716 | xfs_fileoff_t end_fsb, map_start_fsb; |
722 | xfs_fsblock_t first_block; | 717 | xfs_fsblock_t first_block; |
@@ -814,7 +809,7 @@ xfs_iomap_write_allocate( | |||
814 | */ | 809 | */ |
815 | for (i = 0; i < nimaps; i++) { | 810 | for (i = 0; i < nimaps; i++) { |
816 | if (unlikely(!imap[i].br_startblock && | 811 | if (unlikely(!imap[i].br_startblock && |
817 | !(io->io_flags & XFS_IOCORE_RT))) | 812 | !(ip->i_d.di_flags & XFS_DIFLAG_REALTIME))) |
818 | return xfs_cmn_err_fsblock_zero(ip, &imap[i]); | 813 | return xfs_cmn_err_fsblock_zero(ip, &imap[i]); |
819 | if ((offset_fsb >= imap[i].br_startoff) && | 814 | if ((offset_fsb >= imap[i].br_startoff) && |
820 | (offset_fsb < (imap[i].br_startoff + | 815 | (offset_fsb < (imap[i].br_startoff + |
@@ -850,7 +845,6 @@ xfs_iomap_write_unwritten( | |||
850 | size_t count) | 845 | size_t count) |
851 | { | 846 | { |
852 | xfs_mount_t *mp = ip->i_mount; | 847 | xfs_mount_t *mp = ip->i_mount; |
853 | xfs_iocore_t *io = &ip->i_iocore; | ||
854 | xfs_fileoff_t offset_fsb; | 848 | xfs_fileoff_t offset_fsb; |
855 | xfs_filblks_t count_fsb; | 849 | xfs_filblks_t count_fsb; |
856 | xfs_filblks_t numblks_fsb; | 850 | xfs_filblks_t numblks_fsb; |
@@ -913,7 +907,7 @@ xfs_iomap_write_unwritten( | |||
913 | return XFS_ERROR(error); | 907 | return XFS_ERROR(error); |
914 | 908 | ||
915 | if (unlikely(!imap.br_startblock && | 909 | if (unlikely(!imap.br_startblock && |
916 | !(io->io_flags & XFS_IOCORE_RT))) | 910 | !(ip->i_d.di_flags & XFS_DIFLAG_REALTIME))) |
917 | return xfs_cmn_err_fsblock_zero(ip, &imap); | 911 | return xfs_cmn_err_fsblock_zero(ip, &imap); |
918 | 912 | ||
919 | if ((numblks_fsb = imap.br_blockcount) == 0) { | 913 | if ((numblks_fsb = imap.br_blockcount) == 0) { |