]> git.neil.brown.name Git - history.git/commitdiff
[XFS] Use unsigned long long for end_offset so we don't overflow it.
authorNathan Straz <nstraz@sgi.com>
Thu, 1 Apr 2004 21:49:59 +0000 (07:49 +1000)
committerNathan Scott <nathans@sgi.com>
Thu, 1 Apr 2004 21:49:59 +0000 (07:49 +1000)
SGI Modid: xfs-linux:xfs-kern:168809a

fs/xfs/linux/xfs_aops.c

index a48ec1d17cfaf4fe3b70ee71b5711b1f16fa7d07..75ab8d29cd2fdfb86b406a367ee4314c5e5a23ff 100644 (file)
@@ -717,7 +717,8 @@ xfs_page_state_convert(
        struct buffer_head      *bh_arr[MAX_BUF_PER_PAGE], *bh, *head;
        xfs_iomap_t             *iomp, iomap;
        unsigned long           p_offset = 0, end_index;
-       loff_t                  offset, end_offset;
+       loff_t                  offset;
+       unsigned long long      end_offset;
        int                     len, err, i, cnt = 0, uptodate = 1;
        int                     flags = startio ? 0 : BMAPI_TRYLOCK;
        int                     page_dirty = 1;
@@ -734,9 +735,8 @@ xfs_page_state_convert(
        }
 
        offset = (loff_t)page->index << PAGE_CACHE_SHIFT;
-       end_offset = offset + PAGE_CACHE_SIZE;
-       if (end_offset > i_size_read(inode))
-               end_offset = i_size_read(inode);
+       end_offset = min_t(unsigned long long,
+                       offset + PAGE_CACHE_SIZE, i_size_read(inode));
 
        bh = head = page_buffers(page);
        iomp = NULL;