svn commit: r299954 - stable/10/sbin/restore
Pedro Giffuni
pfg at FreeBSD.org
Tue Jun 7 14:21:59 UTC 2016
H David;
On 06/07/16 00:52, David Malone wrote:
> Hi Pedro,
>
> The OpenBSD commit message said off_t, but you commit and commit
> message says size_t, which won't be bigger than a long on some of
> our platforms. Should it have been off_t, or did I misunderstand
> something?
>
You didn't misunderstand anything.
The OpenBSD commit logs says off_t but their commit also has
size_t's. I didn't feel like changing their commit log but
still wanted to keep the "spirit" of the change and give them
credit.
size_t is bigger on the platforms that matter, plus it is
unsigned.
Pedro.
> David.
>> Author: pfg
>> Date: Mon May 16 16:29:56 2016
>> New Revision: 299954
>> URL: https://svnweb.freebsd.org/changeset/base/299954
>>
>> Log:
>> MFC r298901:
>> restore: promote some getfiles() parameters to size_t.
>>
>> This is based on a change from OpenBSD:
>>
>> "Fix restore so that it can actually restore files larger than 4GB by
>> changing the type of "size" to off_t in getfiles() plus little dependent
>> type cleanup, from Daniel Lucq."
>>
>> It is an important for machines with 32 bit longs.
>> While here unsign the flags, also from OpenBSD.
>>
>> Obtained from: OpenBSD (with changes)
>>
>> Modified:
>> stable/10/sbin/restore/dirs.c
>> stable/10/sbin/restore/extern.h
>> stable/10/sbin/restore/tape.c
>> Directory Properties:
>> stable/10/ (props changed)
>>
>> Modified: stable/10/sbin/restore/dirs.c
>> ==============================================================================
>> --- stable/10/sbin/restore/dirs.c Mon May 16 16:16:46 2016 (r299953)
>> +++ stable/10/sbin/restore/dirs.c Mon May 16 16:29:56 2016 (r299954)
>> @@ -85,7 +85,7 @@ struct modeinfo {
>> mode_t mode;
>> uid_t uid;
>> gid_t gid;
>> - int flags;
>> + u_int flags;
>> int extsize;
>> };
>>
>> @@ -115,8 +115,8 @@ static struct inotab *allocinotab(struct
>> static void flushent(void);
>> static struct inotab *inotablookup(ino_t);
>> static RST_DIR *opendirfile(const char *);
>> -static void putdir(char *, long);
>> -static void putdirattrs(char *, long);
>> +static void putdir(char *, size_t);
>> +static void putdirattrs(char *, size_t);
>> static void putent(struct direct *);
>> static void rst_seekdir(RST_DIR *, long, long);
>> static long rst_telldir(RST_DIR *);
>> @@ -323,10 +323,10 @@ searchdir(ino_t inum, char *name)
>> * Put the directory entries in the directory file
>> */
>> static void
>> -putdir(char *buf, long size)
>> +putdir(char *buf, size_t size)
>> {
>> struct direct *dp;
>> - long loc, i;
>> + size_t loc, i;
>>
>> for (loc = 0; loc < size; ) {
>> dp = (struct direct *)(buf + loc);
>> @@ -356,12 +356,12 @@ putdir(char *buf, long size)
>> "reclen not multiple of 4 ");
>> if (dp->d_reclen < DIRSIZ(0, dp))
>> vprintf(stdout,
>> - "reclen less than DIRSIZ (%d < %zu) ",
>> + "reclen less than DIRSIZ (%u < %zu) ",
>> dp->d_reclen, DIRSIZ(0, dp));
>> #if NAME_MAX < 255
>> if (dp->d_namlen > NAME_MAX)
>> vprintf(stdout,
>> - "reclen name too big (%d > %d) ",
>> + "reclen name too big (%u > %u) ",
>> dp->d_namlen, NAME_MAX);
>> #endif
>> vprintf(stdout, "\n");
>> @@ -418,7 +418,7 @@ flushent(void)
>> * Save extended attributes for a directory entry to a file.
>> */
>> static void
>> -putdirattrs(char *buf, long size)
>> +putdirattrs(char *buf, size_t size)
>> {
>>
>> if (mf != NULL && fwrite(buf, size, 1, mf) != 1)
>>
>> Modified: stable/10/sbin/restore/extern.h
>> ==============================================================================
>> --- stable/10/sbin/restore/extern.h Mon May 16 16:16:46 2016 (r299953)
>> +++ stable/10/sbin/restore/extern.h Mon May 16 16:29:56 2016 (r299954)
>> @@ -54,8 +54,8 @@ void freeentry(struct entry *);
>> void freename(char *);
>> int genliteraldir(char *, ino_t);
>> char *gentempname(struct entry *);
>> -void getfile(void (*)(char *, long), void (*)(char *, long),
>> - void (*)(char *, long));
>> +void getfile(void (*)(char *, size_t), void (*)(char *, size_t),
>> + void (*)(char *, size_t));
>> void getvol(long);
>> void initsymtable(char *);
>> int inodetype(ino_t);
>> @@ -98,7 +98,7 @@ void swabst(u_char *, u_char *);
>> void treescan(char *, ino_t, long (*)(char *, ino_t, int));
>> ino_t upperbnd(ino_t);
>> long verifyfile(char *, ino_t, int);
>> -void xtrnull(char *, long);
>> +void xtrnull(char *, size_t);
>>
>> /* From ../dump/dumprmt.c */
>> void rmtclose(void);
>>
>> Modified: stable/10/sbin/restore/tape.c
>> ==============================================================================
>> --- stable/10/sbin/restore/tape.c Mon May 16 16:16:46 2016 (r299953)
>> +++ stable/10/sbin/restore/tape.c Mon May 16 16:29:56 2016 (r299954)
>> @@ -104,7 +104,7 @@ static int checksum(int *);
>> static void findinode(struct s_spcl *);
>> static void findtapeblksize(void);
>> static char *setupextattr(int);
>> -static void xtrattr(char *, long);
>> +static void xtrattr(char *, size_t);
>> static void set_extattr_link(char *, void *, int);
>> static void set_extattr_fd(int, char *, void *, int);
>> static int gethead(struct s_spcl *);
>> @@ -114,12 +114,12 @@ static u_long swabl(u_long);
>> static u_char *swablong(u_char *, int);
>> static u_char *swabshort(u_char *, int);
>> static void terminateinput(void);
>> -static void xtrfile(char *, long);
>> -static void xtrlnkfile(char *, long);
>> -static void xtrlnkskip(char *, long);
>> -static void xtrmap(char *, long);
>> -static void xtrmapskip(char *, long);
>> -static void xtrskip(char *, long);
>> +static void xtrfile(char *, size_t);
>> +static void xtrlnkfile(char *, size_t);
>> +static void xtrlnkskip(char *, size_t);
>> +static void xtrmap(char *, size_t);
>> +static void xtrmapskip(char *, size_t);
>> +static void xtrskip(char *, size_t);
>>
>> /*
>> * Set up an input source
>> @@ -564,7 +564,7 @@ printdumpinfo(void)
>> int
>> extractfile(char *name)
>> {
>> - int flags;
>> + u_int flags;
>> uid_t uid;
>> gid_t gid;
>> mode_t mode;
>> @@ -931,13 +931,13 @@ skipfile(void)
>> * to the skip function.
>> */
>> void
>> -getfile(void (*datafill)(char *, long), void (*attrfill)(char *, long),
>> - void (*skip)(char *, long))
>> +getfile(void (*datafill)(char *, size_t), void (*attrfill)(char *, size_t),
>> + void (*skip)(char *, size_t))
>> {
>> int i;
>> - off_t size;
>> + volatile off_t size;
>> int curblk, attrsize;
>> - void (*fillit)(char *, long);
>> + void (*fillit)(char *, size_t);
>> static char clearedbuf[MAXBSIZE];
>> char buf[MAXBSIZE / TP_BSIZE][TP_BSIZE];
>> char junk[TP_BSIZE];
>> @@ -1066,7 +1066,7 @@ setupextattr(int extsize)
>> * Extract the next block of extended attributes.
>> */
>> static void
>> -xtrattr(char *buf, long size)
>> +xtrattr(char *buf, size_t size)
>> {
>>
>> if (extloc + size > extbufsize)
>> @@ -1079,7 +1079,7 @@ xtrattr(char *buf, long size)
>> * Write out the next block of a file.
>> */
>> static void
>> -xtrfile(char *buf, long size)
>> +xtrfile(char *buf, size_t size)
>> {
>>
>> if (Nflag)
>> @@ -1096,7 +1096,7 @@ xtrfile(char *buf, long size)
>> */
>> /* ARGSUSED */
>> static void
>> -xtrskip(char *buf, long size)
>> +xtrskip(char *buf, size_t size)
>> {
>>
>> if (lseek(ofile, size, SEEK_CUR) == -1) {
>> @@ -1111,7 +1111,7 @@ xtrskip(char *buf, long size)
>> * Collect the next block of a symbolic link.
>> */
>> static void
>> -xtrlnkfile(char *buf, long size)
>> +xtrlnkfile(char *buf, size_t size)
>> {
>>
>> pathlen += size;
>> @@ -1128,7 +1128,7 @@ xtrlnkfile(char *buf, long size)
>> */
>> /* ARGSUSED */
>> static void
>> -xtrlnkskip(char *buf, long size)
>> +xtrlnkskip(char *buf, size_t size)
>> {
>>
>> fprintf(stderr, "unallocated block in symbolic link %s\n",
>> @@ -1140,7 +1140,7 @@ xtrlnkskip(char *buf, long size)
>> * Collect the next block of a bit map.
>> */
>> static void
>> -xtrmap(char *buf, long size)
>> +xtrmap(char *buf, size_t size)
>> {
>>
>> memmove(map, buf, size);
>> @@ -1152,7 +1152,7 @@ xtrmap(char *buf, long size)
>> */
>> /* ARGSUSED */
>> static void
>> -xtrmapskip(char *buf, long size)
>> +xtrmapskip(char *buf, size_t size)
>> {
>>
>> panic("hole in map\n");
>> @@ -1164,7 +1164,7 @@ xtrmapskip(char *buf, long size)
>> */
>> /* ARGSUSED */
>> void
>> -xtrnull(char *buf, long size)
>> +xtrnull(char *buf, size_t size)
>> {
>>
>> return;
>>
More information about the svn-src-stable-10
mailing list