On Mon, 2015-11-02 at 17:10 -0500, Jeff King wrote: > On Mon, Nov 02, 2015 at 10:50:10PM +0100, Andreas Schwab wrote: > > > Jeff King <peff@xxxxxxxx> writes: > > > > > 4. Fix all of the callers. I suspect this would involve calling > > > fstat(fileno(fh)) to get a real off_t. > > > > You can also use ftello which returns off_t. > > Thanks, I forgot about that function. That would probably be the sanest > path forward. > > I think it is as simple as this (on top of David's patch): > > -- >8 -- > Subject: [PATCH] http: use off_t to store partial file size > > When we try to resume transfer of a partially-downloaded > object or pack, we fopen() the existing file for append, > then use ftell() to get the current position. We use a > "long", which can hold only 2GB on a 32-bit system, even > though packfiles may be larger than that. > > Let's switch to using off_t, which should hold any file size > our system is capable of storing. We need to use ftello() to > get the off_t. This is in POSIX and hopefully available > everywhere; if not, we should be able to wrap it by falling > back to ftell(), which would presumably return "-1" on such > a large file (and we would simply skip resuming in that case). It would skip resuming, but would still maybe write to the end of the existing file, right? So I think we would need to seek to the beginning of the file in that case. (other than that, lgtm) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html