]> err.no Git - varnish/commitdiff
Figure out if we need O_LARGEFILE to be compatible with 1990 or later
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Fri, 25 Jul 2008 12:02:11 +0000 (12:02 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Fri, 25 Jul 2008 12:02:11 +0000 (12:02 +0000)
size disks.

Submitted by: wichert

Fixes ticket 283

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3021 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/storage_file.c
varnish-cache/bin/varnishlog/varnishlog.c
varnish-cache/configure.ac

index a675f617eebe044eb86ac271fc05a6972b28b8c4..f244156d9356a837bbfd416171673e9a6251f7f7 100644 (file)
@@ -194,7 +194,7 @@ smf_calcsize(struct smf_sc *sc, const char *size, int newfile)
                    " to %ju due to system limitations\n", l);
 
        if (l < st.st_size) {
-               AZ(ftruncate(sc->fd, l));
+               AZ(ftruncate(sc->fd, (off_t)l));
        } else if (l - st.st_size > fssize) {
                l = fssize * 80 / 100;
                fprintf(stderr, "WARNING: storage file size reduced"
@@ -228,7 +228,7 @@ smf_initfile(struct smf_sc *sc, const char *size, int newfile)
 {
        smf_calcsize(sc, size, newfile);
 
-       AZ(ftruncate(sc->fd, sc->filesize));
+       AZ(ftruncate(sc->fd, (off_t)sc->filesize));
 
        /* XXX: force block allocation here or in open ? */
 }
@@ -279,7 +279,11 @@ smf_init(struct stevedore *parent, int ac, char * const *av)
        parent->priv = sc;
 
        /* try to create a new file of this name */
+#ifdef O_LARGEFILE
+       sc->fd = open(fn, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE, 0600);
+#else
        sc->fd = open(fn, O_RDWR | O_CREAT | O_EXCL, 0600);
+#endif
        if (sc->fd >= 0) {
                sc->filename = fn;
                mgt_child_inherit(sc->fd, "storage_file");
index 1f4a818d840922f0d92df63c629cbda6773cc970..ed41ef53e86751b752cc39da70c0e60d18f694af 100644 (file)
@@ -259,6 +259,9 @@ open_log(const char *w_arg, int a_flag)
        int fd, flags;
 
        flags = (a_flag ? O_APPEND : O_TRUNC) | O_WRONLY | O_CREAT;
+#ifdef O_LARGEFILE
+        flags |= O_LARGEFILE;
+#endif
        if (!strcmp(w_arg, "-"))
                fd = STDOUT_FILENO;
        else
index 3e369596a10275bd960ef857339b33539ee949ee..63ca4c00a61525636ec6997a9f92a29318b4f520 100644 (file)
@@ -142,6 +142,7 @@ AC_CHECK_FUNCS([strlcat strlcpy])
 AC_CHECK_FUNCS([strndup])
 AC_CHECK_FUNCS([vis strvis strvisx])
 AC_CHECK_FUNCS([daemon])
+AC_SYS_LARGEFILE
 
 save_LIBS="${LIBS}"
 LIBS="${LIBS} ${RT_LIBS}"