[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221125165242.a33918e30cc9dc70750ed95f@linux-foundation.org>
Date: Fri, 25 Nov 2022 16:52:42 -0800
From: Andrew Morton <akpm@...ux-foundation.org>
To: Jiachen Zhang <zhangjiachen.jaycee@...edance.com>
Cc: "Matthew Wilcox (Oracle)" <willy@...radead.org>,
linux-fsdevel@...r.kernel.org, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, xieyongji@...edance.com
Subject: Re: [PATCH] filemap: Fix some misleading comments
On Fri, 25 Nov 2022 15:09:59 +0800 Jiachen Zhang <zhangjiachen.jaycee@...edance.com> wrote:
> The users of filemap_write_and_wait_range() and file_write_and_wait_range()
> interfaces should set the lend parameter to LLONG_MAX, rather than -1, to
> indicate they want to writeback to the very end-of-file, as several kernel
> code paths are checking the 'wbc->range_end == LLONG_MAX' conditions.
Unclear. LLONG_MAX differs from -1 on 64-bit and differs differently
on 32-bit.
> --- a/mm/filemap.c
> +++ b/mm/filemap.c
> @@ -661,7 +661,8 @@ EXPORT_SYMBOL_GPL(filemap_range_has_writeback);
> * Write out and wait upon file offsets lstart->lend, inclusive.
> *
> * Note that @lend is inclusive (describes the last byte to be written) so
> - * that this function can be used to write to the very end-of-file (end = -1).
> + * that this function can be used to write to the very end-of-file (@lend =
> + * LLONG_MAX).
> *
The write(2) manpage says "According to POSIX.1, if count is greater
than SSIZE_MAX, the result is implementation-defined; see NOTES for the
upper limit on Linux." And filemap_fdatawrite_wbc() enforces LONG_MAX,
which differs from LLONG_MAX on 32-bit.
I suspect more research is needed here.
Powered by blists - more mailing lists