CIFS + NFS'ing a single filesystem w/ locking

Adam D. Morley adam-samba at gmi.com
Thu Jan 12 19:08:38 GMT 2006


Hi,

On Wed, Jan 11, 2006 at 07:14:33PM -0800, Jeremy Allison wrote:
> On Wed, Jan 11, 2006 at 06:24:12PM -0800, Adam D. Morley wrote:
> > Hi,
> > 
> > I sent the below two emails to the general inquiries list, but I didn't
> > get any replies.  I thought since I was discussing locking I might need
> > to post here.  The messages follow, my first post discussing Samba'ing
> > an NFS-exported UFS on Solaris, while my second email mentions an
> > attempt to get Samba to honor/see locks made on a Linux host's console.
> > 
> > Summary: locking doesn't seem to work.  I may be doing something wrong.
> > If so, what?  smb.conf is included for both hosts, in addition to
> > references to the code in OpenOffice's source tree.
> > 
> > Thanks a bunch!
> > 
> > ----- Forwarded message from "Adam D. Morley" <adam-samba at gmi.com> -----
> > I have a Solaris 10 server exporting UFS directories using built-in NFS.
> > I've built Samba 3.0.20b from OpenPKG (www.openpkg.org).  I have a
> > Solaris 10 (x86) client mounting the NFS share and opening OpenDocument
> > files using StarOffice 8 (SO8, aka OO2.0).  I also have a Windows 2003
> > Terminal Server mounting the Samba share and opening documents with SO8.
> > This is a temporary development environment, so I can screw around with
> > it.  I have a similar, production environment using RHEL3 (clients) and
> > Solaris 9 (server), with no Samba.  Ie: I would like to export NFS
> > shares as CIFS shares using Samba.  But: I want file locking.
> > 
> > StarOffice 8/OO2.0 support file locking, whereby the first user to open 
> > a file will place a lock* on the file, and the other users will get a 
> > read-only file.  This works fine with NFS & nlockmgr (cross platform, 
> > linux/solaris).  However, when I add Samba to the mix, it doesn't seem 
> > to see the locks.  I am under the impression this is because Solaris 
> > does not support kernel oplocks.  Here is my smb.conf:
> 
> Yes, it's probably because Solaris doesn't support kernel oplocks so
> other processes on the box won't ever see the Windows client locks
> (they'll never be sent to the server if the client thinks it has an
> oplock). For solaris you'll have to turn off oplocks if you want
> this to work.

It's not just Windows client locks --- I set up a Linux machine (see the
second email) and opened a document with StarOffice 8 on the console.
This establishes a write lock (lock type of FWRLCK) on the file.  Then,
when Samba tries to open it for the Windows client, the Windows client
can't open the file.  If I close the file on the console, and then open 
it with the Windows machine (through Samba), it opens fine.  Opening it 
at the console then yields no message about a lock, and then the Windows
client again gets an I/O error.  This is with RHEL3ES's Samba, which
should be a locking-capable Samba server from what I've read.

Basically, I'm wondering why the locks don't propegate, and if there is
a way to find out what the I/O errors are.  I will probably start
stracing smbd, but before I started doing that I wanted to ask if my
config file settings:

[global]
workgroup = test
security = share
  
[shared2]
path = /shared2
read only = No
guest ok = yes
kernel oplocks = Yes
locking = Yes
oplocks = Yes
level2 oplocks = No

Should allow for locks on the console of the Linux machine to propegate
to Samba. . .

Thanks!

-- 
adam


More information about the samba-technical mailing list