xfs
[Top] [All Lists]

Re: [PATCH 10/11] xfs: clean up end index calculation in xfs_page_state_

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 10/11] xfs: clean up end index calculation in xfs_page_state_convert
From: Alex Elder <aelder@xxxxxxx>
Date: Thu, 29 Apr 2010 15:50:53 -0500
Cc: XFS Mailing List <xfs@xxxxxxxxxxx>
In-reply-to: <20100428123016.305118675@xxxxxxxxxxxxxxxxxxxxxx>
References: <20100428122850.075189557@xxxxxxxxxxxxxxxxxxxxxx> <20100428123016.305118675@xxxxxxxxxxxxxxxxxxxxxx>
Reply-to: aelder@xxxxxxx
On Wed, 2010-04-28 at 08:29 -0400, Christoph Hellwig wrote:
> plain text document attachment (xfs-iomap-cleanup-11)
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Whoops, I think I responded twice to patch 9.

The whole series of 11 looks good.

Reviewed-by: Alex Elder <aelder@xxxxxxx>


> Index: xfs/fs/xfs/linux-2.6/xfs_aops.c
> ===================================================================
> --- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c      2010-04-28 12:59:52.857024355 
> +0200
> +++ xfs/fs/xfs/linux-2.6/xfs_aops.c   2010-04-28 12:59:54.989003542 +0200
> @@ -1064,7 +1064,7 @@ xfs_page_state_convert(
>       unsigned long           p_offset = 0;
>       unsigned int            type;
>       __uint64_t              end_offset;
> -     pgoff_t                 end_index, last_index, tlast;
> +     pgoff_t                 end_index, last_index;
>       ssize_t                 size, len;
>       int                     flags, err, imap_valid = 0, uptodate = 1;
>       int                     page_dirty, count = 0;
> @@ -1259,15 +1259,22 @@ xfs_page_state_convert(
>               xfs_start_page_writeback(page, 1, count);
>  
>       if (ioend && imap_valid) {
> -             struct xfs_mount        *m = XFS_I(inode)->i_mount;
> -             xfs_off_t               iomap_offset = XFS_FSB_TO_B(m, 
> imap.br_startoff);
> -             xfs_off_t               iomap_bsize = XFS_FSB_TO_B(m, 
> imap.br_blockcount);
> -
> -             offset = (iomap_offset + iomap_bsize - 1) >>
> -                                     PAGE_CACHE_SHIFT;
> -             tlast = min_t(pgoff_t, offset, last_index);
> +             xfs_off_t               end_index;
> +
> +             end_index = imap.br_startoff + imap.br_blockcount;
> +
> +             /* to bytes */
> +             end_index <<= inode->i_blkbits;
> +
> +             /* to pages */
> +             end_index = (end_index - 1) >> PAGE_CACHE_SHIFT;
> +
> +             /* check against file size */
> +             if (end_index > last_index)
> +                     end_index = last_index;
> +
>               xfs_cluster_write(inode, page->index + 1, &imap, &ioend,
> -                                     wbc, startio, all_bh, tlast);
> +                                     wbc, startio, all_bh, end_index);
>       }
>  
>       if (iohead)
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs



<Prev in Thread] Current Thread [Next in Thread>