From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anderson Pereira Ataides Subject: CLIPPER LOCKS (again) Date: Fri, 12 Jul 2002 14:37:19 -0300 Sender: linux-msdos-owner@vger.kernel.org Message-ID: <02071214371900.01190@anderson.cdc.net> Mime-Version: 1.0 Content-Transfer-Encoding: 7BIT Return-path: List-Id: Content-Type: text/plain; charset="us-ascii" To: linux-msdos@vger.kernel.org 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 -