From: Dave Chinner <dchinner@redhat.com>
To: Lukas Czerner <lczerner@redhat.com>
Cc: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org,
tytso@mit.edu, achender@linux.vnet.ibm.com
Subject: Re: [PATCH 04/12 v2] xfs: pass LLONG_MAX to truncate_inode_pages_range
Date: Mon, 16 Jul 2012 09:11:17 +1000 [thread overview]
Message-ID: <20120715231117.GD30524@devil.redhat.com> (raw)
In-Reply-To: <1342185555-21146-4-git-send-email-lczerner@redhat.com>
On Fri, Jul 13, 2012 at 03:19:07PM +0200, Lukas Czerner wrote:
> Currently we're passing -1 to truncate_inode_pages_range() which is
> actually really confusing since the argument is signed so we do not get
> "huge" number as one would expect, but rather just -1. To make things
> clearer and easier for truncate_inode_pages_range() just pass LLONG_MAX
> since it is actually what was intended anyway.
>
> It also makes thing easier for allowing truncate_inode_pages_range() to
> handle non page aligned regions. Moreover letting the lend argument to
> be negative might actually hide some bugs.
>
> Signed-off-by: Lukas Czerner <lczerner@redhat.com>
> Cc: Dave Chinner <dchinner@redhat.com>
> ---
> fs/xfs/xfs_fs_subr.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/fs/xfs/xfs_fs_subr.c b/fs/xfs/xfs_fs_subr.c
> index 652b875..6e9b052 100644
> --- a/fs/xfs/xfs_fs_subr.c
> +++ b/fs/xfs/xfs_fs_subr.c
> @@ -34,7 +34,8 @@ xfs_tosspages(
> {
> /* can't toss partial tail pages, so mask them out */
> last &= ~(PAGE_SIZE - 1);
> - truncate_inode_pages_range(VFS_I(ip)->i_mapping, first, last - 1);
> + truncate_inode_pages_range(VFS_I(ip)->i_mapping, first,
> + last == -1 ? LLONG_MAX : last);
The last paramter changed from (last -1) to last. so if we pass in
last = 16384, we now truncate to 16384 (first byte of page index 5)
instead of 16383 (last byte of page index 4). That's a change of
behaviour and a potential off-by one error, right?
> @@ -53,7 +54,8 @@ xfs_flushinval_pages(
> ret = filemap_write_and_wait_range(mapping, first,
> last == -1 ? LLONG_MAX : last);
> if (!ret)
> - truncate_inode_pages_range(mapping, first, last);
> + truncate_inode_pages_range(mapping, first,
> + last == -1 ? LLONG_MAX : last);
Given this is also done immediately above in the function, perhaps
this should be done before anything:
if (last == -1)
last = LLONG_MAX;
and the parameter simply passed to the two functions without the
conditional logic?
Cheers,
Dave.
--
Dave Chinner
dchinner@redhat.com
next prev parent reply other threads:[~2012-07-15 23:11 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-13 13:19 [PATCH 01/12 v2] Revert "ext4: remove no longer used functions in inode.c" Lukas Czerner
2012-07-13 13:19 ` [PATCH 02/12 v2] Revert "ext4: fix fsx truncate failure" Lukas Czerner
2012-07-13 17:42 ` Theodore Ts'o
2012-07-14 7:45 ` Christoph Hellwig
2012-07-16 7:35 ` Lukáš Czerner
2012-07-16 21:41 ` Hugh Dickins
2012-07-17 7:53 ` Lukáš Czerner
2012-07-18 19:34 ` Eric Sandeen
2012-07-19 6:45 ` Lukáš Czerner
2012-07-13 13:19 ` [PATCH 03/12 v2] shmem: pass LLONG_MAX to shmem_truncate_range Lukas Czerner
2012-07-18 19:54 ` Eric Sandeen
2012-07-19 6:40 ` Lukáš Czerner
2012-07-13 13:19 ` [PATCH 04/12 v2] xfs: pass LLONG_MAX to truncate_inode_pages_range Lukas Czerner
2012-07-15 23:11 ` Dave Chinner [this message]
2012-07-16 7:13 ` Lukáš Czerner
2012-07-16 11:52 ` Lukáš Czerner
2012-07-13 13:19 ` [PATCH 05/12 v2] mm: " Lukas Czerner
2012-07-13 13:19 ` [PATCH 06/12 v2] mm: teach truncate_inode_pages_range() to hadnle non page aligned ranges Lukas Czerner
2012-07-17 8:28 ` Hugh Dickins
2012-07-17 11:57 ` Lukáš Czerner
2012-07-17 12:16 ` Lukáš Czerner
2012-07-18 8:18 ` Lukáš Czerner
2012-07-18 19:36 ` Hugh Dickins
2012-07-19 7:15 ` Lukáš Czerner
2012-07-19 23:07 ` Dave Chinner
2012-07-13 13:19 ` [PATCH 07/12 v2] ext4: use ext4_zero_partial_blocks in punch_hole Lukas Czerner
2012-07-13 13:19 ` [PATCH 08/12 v2] ext4: remove unused discard_partial_page_buffers Lukas Czerner
2012-07-13 13:19 ` [PATCH 09/12 v2] ext4: remove unused code from ext4_remove_blocks() Lukas Czerner
2012-07-13 13:19 ` [PATCH 10/12 v2] ext4: update ext4_ext_remove_space trace point Lukas Czerner
2012-07-13 13:19 ` [PATCH 11/12 v2] ext4: make punch hole code path work with bigalloc Lukas Czerner
2012-07-13 13:19 ` [PATCH 12/12 v2] ext4: Allow punch hole with bigalloc enabled Lukas Czerner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120715231117.GD30524@devil.redhat.com \
--to=dchinner@redhat.com \
--cc=achender@linux.vnet.ibm.com \
--cc=lczerner@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.