On Fri, Dec 07, 2012 at 01:08:46PM +0400, Pavel Shilovsky wrote:
> 2012/12/6 Pavel Shilovsky <pias...@etersoft.ru>:
> > Network filesystems CIFS, SMB2.0, SMB3.0 and NFSv4 have such flags - this 
> > change can benefit cifs and nfs modules. While this change is ok for 
> > network filesystems, itsn't not targeted for local filesystems due security 
> > problems (e.g. when a user process can deny root to delete a file).
> >
> > Share flags are used by Windows applications and WINE have to deal with 
> > them too. While WINE can process open share flags itself on local 
> > filesystems, it can't do it if a file stored on a network share and is used 
> > by several clients. This patchset makes it possible for CIFS/SMB2.0/SMB3.0.
> >
> > Pavel Shilovsky (3):
> >   fcntl: Introduce new O_DENY* open flags for network filesystems
> >   CIFS: Add O_DENY* open flags support
> >   CIFS: Use NT_CREATE_ANDX command for forcemand mounts
> >
> >  fs/cifs/cifsacl.c                |   10 ++++----
> >  fs/cifs/cifsglob.h               |   11 ++++++++-
> >  fs/cifs/cifsproto.h              |    9 ++++----
> >  fs/cifs/cifssmb.c                |   47 
> > ++++++++++++++++++++------------------
> >  fs/cifs/dir.c                    |   14 ++++++++----
> >  fs/cifs/file.c                   |   18 ++++++++++-----
> >  fs/cifs/inode.c                  |   11 +++++----
> >  fs/cifs/link.c                   |   10 ++++----
> >  fs/cifs/readdir.c                |    2 +-
> >  fs/cifs/smb1ops.c                |   15 ++++++------
> >  fs/cifs/smb2file.c               |   10 ++++----
> >  fs/cifs/smb2inode.c              |    4 ++--
> >  fs/cifs/smb2ops.c                |   10 ++++----
> >  fs/cifs/smb2pdu.c                |    6 ++---
> >  fs/cifs/smb2proto.h              |   14 +++++++-----
> >  fs/fcntl.c                       |    5 ++--
> >  include/uapi/asm-generic/fcntl.h |   11 +++++++++
> >  17 files changed, 125 insertions(+), 82 deletions(-)
> >
> > --
> > 1.7.10.4
> >
> 
> First of all, sorry for being unclear at this proposal.
> 
> 
> I am not from Wine team but I am working on things related to
> Wine+CIFS-client+Samba.
> 
> We (at Etersoft) need to organize the work of Wine applications
> through cifs-client share mounted to Samba (or Windows server). They
> are related to accounting (mostly Russian ones - e.g.
> http://www.1c.ru/eng/title.htm). So, the problem is that such
> applications use share flags to control the parallel access to the
> same files of several clients on a remote share. Also, there can be a
> situation where Windows (native) clients and Wine clients are working
> together in the same time.
> 
> That's why we need such flags in the kernel (patch #1). With these
> flags Wine can pass them to every open and they will be used by CIFS
> (and probably NFS) file systems to pass to the Samba server. In the
> same time if the file is on local filesystem - these flags will be
> simply ignored (not implemented).

NFS supports the deny-read and deny-write bits but not deny-delete.

If we could do such opens in-kernel on local and clustered filesystems,
that could also be useful for multi-protocol (Samba and NFS) and
clustered exports.

Currently knfsd tries to enforce deny bits in the nfsd code, which is a
bit ugly.

And knfsd currently requires write permissions for deny-read.  My
understanding is that Windows considers that wrong, but I'd be curious
to know whether that breaks Windows applications in practice.

--b.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to