Re: CIFS data coherency problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 8 Sep 2010 06:32:24 -0400
Jeff Layton <jlayton@xxxxxxxxx> wrote:

> On Wed, 8 Sep 2010 10:49:13 +0400
> Pavel Shilovsky <piastryyy@xxxxxxxxx> wrote:
> 
> > Hello!
> > 
> > I faced with a problem of the wrong cifs cache behavior while adapting
> > CIFS VFS client for working with the application which uses file
> > system as a mechanism for storing data and organizing paralell access
> > from several client. If we look at CIFS code, we can see that it uses
> > kernel cache mechanism all the time (do_sync_read, do_sync_write, etc)
> > and delegate all the checking for validating data to cifs_revalidate
> > call.
> > 
> > cifs_revalidate call uses QueryInfo protocol command for checking
> > mtime and file size. I noticed that the server doesn't update mtime
> > every time we writng to the server - that's why we can't use it.
> > 
> 
> What sort of server were you working with here?
> 
> > On another hand CIFS spec says that the client can't use cache for if
> > it doesn't have an oplock - if we don't follow the spec, we can faced
> > with other problems.
> > 
> > Even more: if we use a Windows server and the mandatory locking style,
> > now we can read from locking by other clients range (if we have this
> > data in cache) - it's not right.
> > 
> > As the solution, I suggest to follow the spec in every it's part: to
> > do cache write/read if we have Exclusive oplock, to do cache read if
> > we have Oplock Level II and as for other cases - use direct operations
> > with the server.
> > 
> > I attached the test (cache_problem.py) that shows the problem.
> > 
> > What do you think about it? I have the code that do read/write
> > according to the spec but I want to discuss this question before
> > posting the patch because I think it's rather important
> > 
> 
> At the very least, we should consider a "strict" caching model like you
> describe as an option. If it has a large performance impact then we may
> want to allow people to use the existing caching model as well. OTOH,
> maintaining multiple caching models may be too cumbersome to support.
> 
> If you're saying however that the spec says this, then it would
> also be helpful to point out the place in the spec that outlines this
> so we can go back and read over that part.
> 
> There's no need to hesitate in sending the patches however. Doing so
> gives us a starting point for discussing the change. If you're not sure
> about them, just declare them an "RFC".
> 

Also, while you're considering the semantics here...

How should mmap work if you do not have an oplock?

-- 
Jeff Layton <jlayton@xxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux