1*4882a593SmuzhiyunUpstream-Status: Inappropriate [1]
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun[1] Not the author, the patch is from:
4*4882a593Smuzhiyunhttp://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun--- rdist-6.1.5/src/filesys.c.stat64	2005-05-04 14:11:03.000000000 +0200
7*4882a593Smuzhiyun+++ rdist-6.1.5/src/filesys.c	2005-05-04 14:11:10.000000000 +0200
8*4882a593Smuzhiyun@@ -430,8 +430,8 @@
9*4882a593Smuzhiyun  */
10*4882a593Smuzhiyun int getfilesysinfo(file, freespace, freefiles)
11*4882a593Smuzhiyun 	char *file;
12*4882a593Smuzhiyun-	long *freespace;
13*4882a593Smuzhiyun-	long *freefiles;
14*4882a593Smuzhiyun+	fsblkcnt_t *freespace;
15*4882a593Smuzhiyun+	fsfilcnt_t *freefiles;
16*4882a593Smuzhiyun {
17*4882a593Smuzhiyun #if	defined(STATFS_TYPE)
18*4882a593Smuzhiyun 	static statfs_t statfsbuf;
19*4882a593Smuzhiyun--- rdist-6.1.5/src/server.c.stat64	2005-05-04 14:11:23.000000000 +0200
20*4882a593Smuzhiyun+++ rdist-6.1.5/src/server.c	2005-05-04 14:20:34.000000000 +0200
21*4882a593Smuzhiyun@@ -62,8 +62,8 @@
22*4882a593Smuzhiyun int	catname = 0;		/* cat name to target name */
23*4882a593Smuzhiyun char	*sptarget[32];		/* stack of saved ptarget's for directories */
24*4882a593Smuzhiyun char   *fromhost = NULL;	/* Client hostname */
25*4882a593Smuzhiyun-static long min_freespace = 0;	/* Minimium free space on a filesystem */
26*4882a593Smuzhiyun-static long min_freefiles = 0;	/* Minimium free # files on a filesystem */
27*4882a593Smuzhiyun+static fsblkcnt_t min_freespace = 0; /* Minimium free space on a filesystem */
28*4882a593Smuzhiyun+static fsfilcnt_t min_freefiles = 0; /* Minimium free # files on a filesystem */
29*4882a593Smuzhiyun int	oumask;			/* Old umask */
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun /*
32*4882a593Smuzhiyun@@ -1326,7 +1326,7 @@
33*4882a593Smuzhiyun 			fatalerr("Expected digit, got '%s'.", cp);
34*4882a593Smuzhiyun 			return;
35*4882a593Smuzhiyun 		}
36*4882a593Smuzhiyun-		min_freespace = (unsigned long) atoi(cp);
37*4882a593Smuzhiyun+		min_freespace = (fsblkcnt_t) atoll(cp);
38*4882a593Smuzhiyun 		break;
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun 	case SC_FREEFILES: 	/* Minimium free files */
41*4882a593Smuzhiyun@@ -1334,7 +1334,7 @@
42*4882a593Smuzhiyun 			fatalerr("Expected digit, got '%s'.", cp);
43*4882a593Smuzhiyun 			return;
44*4882a593Smuzhiyun 		}
45*4882a593Smuzhiyun-		min_freefiles = (unsigned long) atoi(cp);
46*4882a593Smuzhiyun+		min_freefiles = (fsfilcnt_t) atoll(cp);
47*4882a593Smuzhiyun 		break;
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun 	case SC_LOGGING:	/* Logging options */
50*4882a593Smuzhiyun@@ -1364,7 +1364,8 @@
51*4882a593Smuzhiyun 	time_t mtime, atime;
52*4882a593Smuzhiyun 	char *owner, *group, *file;
53*4882a593Smuzhiyun 	char new[MAXPATHLEN];
54*4882a593Smuzhiyun-	long freespace = -1, freefiles = -1;
55*4882a593Smuzhiyun+	fsfilcnt_t freefiles = -1;
56*4882a593Smuzhiyun+	fsblkcnt_t freespace = -1;
57*4882a593Smuzhiyun 	char *cp = cmd;
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun 	/*
60*4882a593Smuzhiyun@@ -1499,7 +1500,7 @@
61*4882a593Smuzhiyun 	 */
62*4882a593Smuzhiyun 	if (min_freespace || min_freefiles) {
63*4882a593Smuzhiyun 		/* Convert file size to kilobytes */
64*4882a593Smuzhiyun-		long fsize = (long) (size / 1024);
65*4882a593Smuzhiyun+		fsblkcnt_t fsize = (fsblkcnt_t) (size / 1024);
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun 		if (getfilesysinfo(target, &freespace, &freefiles) != 0)
68*4882a593Smuzhiyun 			return;
69*4882a593Smuzhiyun@@ -1511,14 +1512,14 @@
70*4882a593Smuzhiyun 		if (min_freespace && (freespace >= 0) &&
71*4882a593Smuzhiyun 		    (freespace - fsize < min_freespace)) {
72*4882a593Smuzhiyun 			error(
73*4882a593Smuzhiyun-		     "%s: Not enough free space on filesystem: min %d free %d",
74*4882a593Smuzhiyun+		     "%s: Not enough free space on filesystem: min %lld free %lld",
75*4882a593Smuzhiyun 			      target, min_freespace, freespace);
76*4882a593Smuzhiyun 			return;
77*4882a593Smuzhiyun 		}
78*4882a593Smuzhiyun 		if (min_freefiles && (freefiles >= 0) &&
79*4882a593Smuzhiyun 		    (freefiles - 1 < min_freefiles)) {
80*4882a593Smuzhiyun 			error(
81*4882a593Smuzhiyun-		     "%s: Not enough free files on filesystem: min %d free %d",
82*4882a593Smuzhiyun+		     "%s: Not enough free files on filesystem: min %lld free %lld",
83*4882a593Smuzhiyun 			      target, min_freefiles, freefiles);
84*4882a593Smuzhiyun 			return;
85*4882a593Smuzhiyun 		}
86