public inbox for linux-msdos@vger.kernel.org
 help / color / mirror / Atom feed
* CLIPPER LOCKS (again)
@ 2002-07-12 17:37 Anderson Pereira Ataides
  2002-07-17 13:15 ` Juan Camilo Yanquen
  0 siblings, 1 reply; 3+ messages in thread
From: Anderson Pereira Ataides @ 2002-07-12 17:37 UTC (permalink / raw)
  To: linux-msdos

Hello, 

Again I'm asking for help, because I did not fix my problem. Remembering my 
story is that I have an application written using Clipper 5.2 and when a 
workstation with linux+dosemu opens a file and lock a record (or the entire 
file), another workstation running Windows still can open that file, meaning 
that it can't see the file is locked by dosemu. Trying this operation opening 
the file in Windows first, the problem still occurs.

I upgraded kernel to 2.4.18 but problem is still there.

I'm using:
	kernel 2.4.18
	samba 2.2.0
	dosemu-1.1.2

Mr Sergey Suleymanov sent me a message telling me to use a fix (see below) 
but I did not understand it. How am I supposed to use this fix? Do I have to 
type it at linux prompt? Is it a script? Is it something to put into a 
configuration file?

Greg LaBossiere also sent me a message suggesting to upgrade kernel. So I did 
it but did not solve my problem.

Thanks,
Anderson Pereira Ataides
Linux User #277884

------------------------------------------------

 Anderson> Hi, I've got an application develop using Clipper 5.01 and
 Anderson> I'm having trouble with locks.

 Anderson> How can I solve this problem? Is it a dosemu bug?

        Can you try this fix?

diff -rubN dosemu-1.1.3/src/dosext/mfs/mfs.c 
dosemu-1.1.3.my2/src/dosext/mfs/mfs.c
--- dosemu-1.1.3/src/dosext/mfs/mfs.c    Tue Apr 23 15:16:39 2002
+++ dosemu-1.1.3.my2/src/dosext/mfs/mfs.c        Mon May  6 10:18:53 2002
@@ -3795,6 +3866,7 @@
                 ret = fcntl (fd,F_SETLK,&larg);
                 Debug0((dbg_fd, "lock fd=%x rc=%x type=%x whence=%x 
start=%lx, len=%lx\n",
                         fd, ret, larg.l_type, larg.l_whence, 
larg.l_start,larg.l_len));
+                if (ret == -1) SETWORD(&(state->eax), ACCESS_DENIED);
                 return ret != -1 ? TRUE : FALSE;
         }
     break;

-- 
  Sergey Suleymanov

-

^ permalink raw reply	[flat|nested] 3+ messages in thread
* RE: CLIPPER LOCKS (again)
@ 2002-07-12 19:14 Greg LaBossiere
  0 siblings, 0 replies; 3+ messages in thread
From: Greg LaBossiere @ 2002-07-12 19:14 UTC (permalink / raw)
  To: 'Anderson Pereira Ataides', linux-msdos@vger.kernel.org

On Friday, July 12, 2002 12:37 PM, Anderson Pereira Ataides 
[SMTP:anderson.pa@persogo.com.br] wrote:
> Hello,
>
> Again I'm asking for help, because I did not fix my problem. 
Remembering
> my story is that I have an application written using Clipper 5.2 and 
when
> a workstation with linux+dosemu opens a file and lock a record (or the
> entire file), another workstation running Windows still can open that
> file, meaning that it can't see the file is locked by dosemu. Trying 
this
> operation opening the file in Windows first, the problem still occurs.
>
> I upgraded kernel to 2.4.18 but problem is still there.
>
> I'm using:
> 	kernel 2.4.18
> 	samba 2.2.0
> 	dosemu-1.1.2
>
> Mr Sergey Suleymanov sent me a message telling me to use a fix (see
> below) but I did not understand it. How am I supposed to use this fix?
> Do I have to type it at linux prompt? Is it a script? Is it something 
to
> put into a configuration file?
>
> Greg LaBossiere also sent me a message suggesting to upgrade kernel. So
> I did it but did not solve my problem.

After upgrading Linux kernel and SAMBA, you also need to tune the SAMBA 
oplocks settings. Refer to 
http://de.samba.org/samba/ftp/docs/htmldocs/using_samba/ch05_05.html

Here's a short quote:

"Windows systems cooperate well to avoid overwriting each other's 
changes. But if a file stored on a Samba system is accessed by a Unix 
process, this process won't know a thing about Windows oplocks and could 
easily ride roughshod over a lock. Some Unix systems have been enhanced 
to understand the Windows oplocks maintained by Samba. Currently the 
support exists only in SGI Irix 6.5.2f and later; Linux and FreeBSD 
should soon follow. [Note: Linux kernel 2.4+ has oplocks support].

If you have a system that understands oplocks, set kernel oplocks = yes 
in the Samba configuration file. That should eliminate conflicts between 
Unix processes and Windows users.

If your system does not support kernel oplocks, you could end up with 
corrupted data when somebody runs a Unix process that reads or writes a 
file that Windows users also access."

I do not recommend using the "veto oplock files" directive. As the 
authors point out, it is "a rough protection mechanism" and should not be 
considered reliable in all circumstances.

BTW, I highly recommend O'Reilly's "Using Samba" by Eckstein, 
Collier-Brown and Kelly... it's an excellent reference.

Greg LaBossiere
XVIEW SOLUTIONS INC.
mailto:greg.labossiere@xview.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-07-17 13:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-07-12 17:37 CLIPPER LOCKS (again) Anderson Pereira Ataides
2002-07-17 13:15 ` Juan Camilo Yanquen
  -- strict thread matches above, loose matches on Subject: below --
2002-07-12 19:14 Greg LaBossiere

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox