diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-12-10 03:42:25 -0500 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-12-16 17:06:07 -0500 |
commit | ecff71e677c6d469f525dcf31ada709d5858307c (patch) | |
tree | 644ec23fd88da343a16e6272bd64d0d6d27ec2a6 /fs/xfs | |
parent | aeea1b1f81800e362a3aca86d769d02e137a8fa7 (diff) |
xfs: simplify xfs_map_at_offset
Move the buffer locking into the callers as they need to do it
wether they call xfs_map_at_offset or not. Remove the b_bdev
assignment, which is already done by get_blocks. Remove the
duplicate extent type asserts in xfs_convert_page just before
calling xfs_map_at_offset.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 4d982dc8b862..ec7bbb5645b6 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c | |||
@@ -626,9 +626,7 @@ xfs_map_at_offset( | |||
626 | ASSERT(imap->br_startblock != HOLESTARTBLOCK); | 626 | ASSERT(imap->br_startblock != HOLESTARTBLOCK); |
627 | ASSERT(imap->br_startblock != DELAYSTARTBLOCK); | 627 | ASSERT(imap->br_startblock != DELAYSTARTBLOCK); |
628 | 628 | ||
629 | lock_buffer(bh); | ||
630 | xfs_map_buffer(inode, bh, imap, offset); | 629 | xfs_map_buffer(inode, bh, imap, offset); |
631 | bh->b_bdev = xfs_find_bdev_for_inode(inode); | ||
632 | set_buffer_mapped(bh); | 630 | set_buffer_mapped(bh); |
633 | clear_buffer_delay(bh); | 631 | clear_buffer_delay(bh); |
634 | clear_buffer_unwritten(bh); | 632 | clear_buffer_unwritten(bh); |
@@ -751,12 +749,8 @@ xfs_convert_page( | |||
751 | continue; | 749 | continue; |
752 | } | 750 | } |
753 | 751 | ||
754 | ASSERT(imap->br_startblock != HOLESTARTBLOCK); | 752 | lock_buffer(bh); |
755 | ASSERT(imap->br_startblock != DELAYSTARTBLOCK); | 753 | if (type != IO_OVERWRITE) |
756 | |||
757 | if (type == IO_OVERWRITE) | ||
758 | lock_buffer(bh); | ||
759 | else | ||
760 | xfs_map_at_offset(inode, bh, imap, offset); | 754 | xfs_map_at_offset(inode, bh, imap, offset); |
761 | xfs_add_to_ioend(inode, bh, offset, type, | 755 | xfs_add_to_ioend(inode, bh, offset, type, |
762 | ioendp, done); | 756 | ioendp, done); |
@@ -1041,9 +1035,8 @@ xfs_vm_writepage( | |||
1041 | imap_valid = xfs_imap_valid(inode, &imap, offset); | 1035 | imap_valid = xfs_imap_valid(inode, &imap, offset); |
1042 | } | 1036 | } |
1043 | if (imap_valid) { | 1037 | if (imap_valid) { |
1044 | if (type == IO_OVERWRITE) | 1038 | lock_buffer(bh); |
1045 | lock_buffer(bh); | 1039 | if (type != IO_OVERWRITE) |
1046 | else | ||
1047 | xfs_map_at_offset(inode, bh, &imap, offset); | 1040 | xfs_map_at_offset(inode, bh, &imap, offset); |
1048 | xfs_add_to_ioend(inode, bh, offset, type, &ioend, | 1041 | xfs_add_to_ioend(inode, bh, offset, type, &ioend, |
1049 | new_ioend); | 1042 | new_ioend); |