Thread
-
Re: Switch buffile.c/h to use pgoff_t
Chao Li <li.evan.chao@gmail.com> — 2025-12-26T01:11:48Z
> On Dec 26, 2025, at 07:45, Michael Paquier <michael@paquier.xyz> wrote: > > On Thu, Dec 25, 2025 at 10:40:02AM +0800, Chao Li wrote: >> In attached v3, I have applied int64 to the 2 struct fields and >> corresponding local variables. I ran a clean build, no warning was >> introduced, and "make check" passed. > > The advantage of being able to make the code transparently more > pluggable for max large sizes while we already use 8-byte offsets is > kind of nice, I guess. "availbytes" is a clarification bonus as it is > not an offset per-se. I can see that you have missed on cast spot, so > adjusted things a bit, then applied the result. > -- > Michael Thanks a lot for pushing. WRT to the original (int) casts, I intentionally removed them, because file->nbytes, newOffset and file->curOffset are all signed 64 bit integers now. Compiling with -Wextra won’t get a warning, so technically, the type cast is no longer needed. I saw you changed to: ``` - file->pos = (int) (newOffset - file->curOffset); + file->pos = (int64) (newOffset - file->curOffset); - file->pos = (int) (newOffset - file->curOffset); + file->pos = (int64) newOffset - file->curOffset; - file->nbytes = (int) (newOffset - file->curOffset); + file->nbytes = (int64) newOffset - file->curOffset; ``` The latter two places missed (), but that should also work, just a little inconsistent. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/