On Tue, Feb 20, 2001 at 11:32:55AM +0100, Steffen Neumann wrote:
> 
> Hi,
> 
> we recently had a problem with StarOffice on a Sun NFS Server.
> After we solved that, I tried SO on coda again. Works now.
> 
> Problem is the inode problem with 2.2 kernel
> and also file locking, 
> 
> To solve 1): Don't install to coda file system.
> 
> <bad hack>
>       venus stop
>       mkdir /coda/staroffice ( on your ext2 root partition!!!!)
>               or link /coda/staroffice to 300MB free space
>       install with -net into /coda/staroffice
>       tar czvf /tmp/so.tgz /coda/staroffice
>       rm -rf /coda/staroffice
>       venus start
>       tar xzvf so.tgz
> <bad /hack>
>
> to solve 2):
>       edit /coda/staroffice/program/[setup|soffice]
>       and remove comment from export STAR_PROFILE_LOCKING_DISABLED=1
> 
> ... and bob is your uncle !
> The idea has been taken from 
> the Solaris README for StarOffice.

Nice, I just installed SO last night, I can use that setting ;)

For the `df' reporting, I made this patch against Linux 2.4.2-pre4,
which does the following:

    $ df /coda
    Filesystem           1k-blocks      Used Available Use% Mounted on
    Coda                    100000      1135      1438  45% /coda
    $ echo 1 > /proc/sys/coda/fake_statfs
    $ df /coda
    Filesystem           1k-blocks      Used Available Use% Mounted on
    Coda                   9000000         0   9000000   0% /coda

Jan


<bad hack #2> (against Linux 2.4.2-pre4 kernel)
--- fs/coda/inode.c.orig        Mon Feb 19 17:12:16 2001
+++ fs/coda/inode.c     Mon Feb 19 17:13:11 2001
@@ -282,7 +282,7 @@
 {
        int error;
 
-       error = venus_statfs(sb, buf);
+       error = coda_fake_statfs ? -1 : venus_statfs(sb, buf);
 
        if (error) {
                /* fake something like AFS does */
--- fs/coda/coda_linux.c.orig   Mon Feb 19 17:15:06 2001
+++ fs/coda/coda_linux.c        Mon Feb 19 17:15:10 2001
@@ -25,9 +25,10 @@
 #include <linux/coda_fs_i.h>
 
 /* initialize the debugging variables */
-int coda_debug = 0;
-int coda_print_entry = 0; 
+int coda_debug;
+int coda_print_entry; 
 int coda_access_cache = 1;
+int coda_fake_statfs;
 
 /* print a fid */
 char * coda_f2s(ViceFid *f)
--- fs/coda/sysctl.c.orig       Mon Feb 19 17:11:56 2001
+++ fs/coda/sysctl.c    Mon Feb 19 17:15:39 2001
@@ -47,6 +47,7 @@
 #define CODA_UPCALL     7       /* upcall statistics */
 #define CODA_PERMISSION         8       /* permission statistics */
 #define CODA_CACHE_INV          9       /* cache invalidation statistics */
+#define CODA_FAKE_STATFS 10     /* don't query venus for actual cache usage */
 
 static ctl_table coda_table[] = {
        {CODA_DEBUG, "debug", &coda_debug, sizeof(int), 0644, NULL, &proc_dointvec},
@@ -58,6 +59,7 @@
        {CODA_UPCALL, "upcall_stats", NULL, 0, 0644, NULL, 
&do_reset_coda_upcall_stats},
        {CODA_PERMISSION, "permission_stats", NULL, 0, 0644, NULL, 
&do_reset_coda_permission_stats},
        {CODA_CACHE_INV, "cache_inv_stats", NULL, 0, 0644, NULL, 
&do_reset_coda_cache_inv_stats},
+       {CODA_FAKE_STATFS, "fake_statfs", &coda_fake_statfs, sizeof(int), 0600, NULL, 
+&proc_dointvec},
        { 0 }
 };
 
--- include/linux/coda_linux.h.orig     Mon Feb 19 17:11:28 2001
+++ include/linux/coda_linux.h  Mon Feb 19 17:14:22 2001
@@ -45,6 +45,7 @@
 extern int coda_debug;
 extern int coda_print_entry;
 extern int coda_access_cache;
+extern int coda_fake_statfs;
 
 /* this file:  heloers */
 static __inline__ struct ViceFid *coda_i2f(struct inode *);
</bad hack #2>

> And another step towards world-domination for coda.
> If only we'd get mysqld to work...
> 
> So long,
> Steffen
> 
> 
> =========================================================================
> 
> >Jan Harkes ([EMAIL PROTECTED]) wrote: 
> >Thu, 25 Jan 2001 12:09:27 -0500 
> >
> >On Thu, Jan 25, 2001 at 05:00:47PM +0100, Steffen Neumann wrote:
> >> 
> >> Just as addendum I found the reference,
> >> it's german magazine c't, (15) 2000 p.198
> >> 
> >> Main point is that (for NFS) it is sufficient 
> >> to disable locking via a mount option.
> >> 
> >> Below a babelfish translation...
> >
> >I had to translate that back into german to be able to understand it ;)
> >
> >Coda does not support any locking. I'm not sure what StarOffice is
> >trying to do, but if it can't cope with EOPNOTSUP...
> >
> >Jan
> 
> 
> 

Reply via email to