On Thu, Oct 16, 2008 at 09:48:00AM -0700, Jeremy Allison wrote:
> On Thu, Oct 16, 2008 at 06:49:54PM +0200, Volker Lendecke wrote:
> > > 
> > > The one that bites is Linux -> Linux. This is because
> > > the Gnome VFS has no locking primitives (not an expert
> > > on Gnome VFS so people with more knowledge feel free
> > > to contradict me).
> > 
> > Just FYI: I'm just coming from a customer with exactly this
> > problem using cifs.ko. OpenOffice 2 is just broken when it
> > comes to cross-platform locking. Period.
> 
> Oh that's a shame. Doesn't it make any fcntl lock calls
> for exclusion ? I vaguely remember looking in the source
> code a while ago and thought it did so.

As you say Linux->Linux does fcntl locks, Win->Win does
share modes. Now you can make your own guess what happens if
Win opens first, then Linux: Linux cifs.ko gets a
SHARING_VIOLATION and returns ETXTBSY to OOo, which in turn
gives a nasty I/O error message to the user. Now a Linux
client opens first with DENY_NONE, does its fcntl lock,
Windows opens second. The open works, but due to the fnctl
lock and the mandatory locking semantics of Windows locks,
the read returns something like LOCK_CONFLICT or so. Again,
OOo (Win) is confused and returns something like "File
corrupt, do you want to repair?".

What they *should* have done is open with DENY_NONE and use
a byte range lock on a byte that is never accessed. This is
the only way I can imagine to work.

Volker

Attachment: pgpdXISA3hW4S.pgp
Description: PGP signature

-- 
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/listinfo/samba

Reply via email to