xfs
[Top] [All Lists]

Re: [PATCH 05/32] xfs: remove xfs_flushinval_pages

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 05/32] xfs: remove xfs_flushinval_pages
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Thu, 15 Nov 2012 11:28:07 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1352721264-3700-6-git-send-email-david@xxxxxxxxxxxxx>
References: <1352721264-3700-1-git-send-email-david@xxxxxxxxxxxxx> <1352721264-3700-6-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
> -             if ((iocb->ki_pos & target->bt_smask) ||
> -                 (size & target->bt_smask)) {
> -                     if (iocb->ki_pos == i_size_read(inode))
> +             if ((pos & target->bt_smask) || (size & target->bt_smask)) {
> +                     if (pos == i_size_read(inode))
>                               return 0;
>                       return -XFS_ERROR(EINVAL);
>               }
>       }
>  
> -     n = mp->m_super->s_maxbytes - iocb->ki_pos;
> +     n = mp->m_super->s_maxbytes - pos;

What does this have to do with the recent of the patch?

Not that is diapprove, but I don't think it fits here.

>               if (inode->i_mapping->nrpages) {
> -                     ret = -xfs_flushinval_pages(ip,
> -                                     (iocb->ki_pos & PAGE_CACHE_MASK),
> -                                     -1, FI_REMAPF_LOCKED);
> +                     ret = -filemap_write_and_wait_range(
> +                                                     VFS_I(ip)->i_mapping,
> +                                                     pos, -1);
>                       if (ret) {
>                               xfs_rw_iunlock(ip, XFS_IOLOCK_EXCL);
>                               return ret;
>                       }
> +                     truncate_pagecache_range(VFS_I(ip), pos, -1);

We already have a local "inode" variable that can be used in these two
places.

Also the -1 end might be a 1:1 translation of what was there, but is not what
we really want.  At very least it needs an XXX comment that the range should
be revisited.

> @@ -670,10 +670,11 @@ xfs_file_dio_aio_write(
>               goto out;
>  
>       if (mapping->nrpages) {
> -             ret = -xfs_flushinval_pages(ip, (pos & PAGE_CACHE_MASK), -1,
> -                                                     FI_REMAPF_LOCKED);
> +             ret = -filemap_write_and_wait_range(VFS_I(ip)->i_mapping,
> +                                                 pos, -1);
>               if (ret)
>                       goto out;
> +             truncate_pagecache_range(VFS_I(ip), pos, -1);

We already have local mapping and inode variables here, same comment
about the -1 len.

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