From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Lee Subject: Re: Samba and kernel oplocks - Solved. Date: 02 Sep 2002 16:08:05 -0700 Sender: linux-msdos-owner@vger.kernel.org Message-ID: <1031008087.27013.111.camel@ralph.plexio.private> References: <1030488939.18055.19.camel@ralph.plexio.private> <02082810141600.00982@anderson.cdc.net> <87sn0ydw1t.fsf@eatpbank.ru> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <87sn0ydw1t.fsf@eatpbank.ru> List-Id: Content-Type: text/plain; charset="us-ascii" To: Sergey Suleymanov Cc: Linux-MSDOS Mailing list On Wed, 2002-08-28 at 23:21, Sergey Suleymanov wrote: > >>>>> Anderson Pereira Ataides writes: > > Anderson> I thing problem is not only samba because nfs also have > Anderson> problem. I have two Linux workstations and when I lock > Anderson> record in one of them, the other one can't see this lock. > > Anderson> Like you I'm waiting for a solution to this problem. > > Well, I'm just try locks with samba, and it seems work. > oplocks = no in smb.conf and this hack to mfs.c > > --- src/dosext/mfs/mfs.c.orig Thu Aug 29 10:09:33 2002 > +++ src/dosext/mfs/mfs.c Thu Aug 29 10:08:31 2002 > @@ -3823,11 +3823,16 @@ > the top two bits are set. Shift the top ones by two bits. This > still allows OLE2 apps to operate, but should stop lockd from > dieing */ > +#if 0 > if ((larg.l_start & mask) != 0) > larg.l_start = (larg.l_start & ~mask) | ((larg.l_start & mask) >> 2); > +#else > + larg.l_start &= 0x7fffffff; > +#endif > 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; > > I don't understand that bit magic, maybe this won't work with > nfs or something else. > I'm happy to say that the above patch allows Foxpro/Dosemu file locks to be recognized by Samba 2.2.4. This means I can run the Foxpro application via Dosemu and under MSDOS/Win98/Samba simultaneously! The only issue I had with the above patch is that the line numbers did not match my version of Dosemu 1.1.3.2 with keyboard patches. I had to insert the lines manually. Now onto stress testing to ensure the changes do not affect Dosemu stability. Thanks Sergey! Stephen