27 апреля 2012 г. 14:56 пользователь Jeff Layton <jlayton@xxxxxxxxxx> написал: > cifs.ko currently does not follow the CIFS protocol as it should by > default. The protocol specifies (paraphrasing) "Thou shalt not cache > file data without an oplock." cifs.ko by default *does* do this however, > opting for a more NFS-like cache coherency scheme. It caches file data > in the pagecache, and invalidate it when the attributes look like the > file has changed. > > Unfortunately, this can and does cause cache coherency problems. The > kernel can end up buffering up writes for longer than it should. In > particular, internal testing at RH with Samba/CTDB has shown cache > coherency problems when we don't mount on the clients with > strictcache: > > https://bugzilla.redhat.com/show_bug.cgi?id=742314 > > Up until now, we've shied away from changing this default primarily for > performance reasons. The code to handle uncached reads and writes was > synchronous, and very slow. With the addition of async uncached writes > in 3.4 and async uncached reads in 3.5, I think performance is good > enough that we ought to change the defaults to be "strictcache" for > better adherence to the protocol. > > This patchset begins this transition by cleaning up the mount options > that we use to control the cache behavior, and adding some warnings > about the impending behavior change. I'm proposing that we follow the > kernel convention of warning for 2 releases about user-visible changes > and then we'll make the switch in 3.7. > > At the same time, it corrects a problem with the current code. The > different cache behaviors are not considered to be mutually exclusive > even though they should be. If someone (for instance) specifies > "strictcache" and "fsc" the results are poorly defined. The first > patch corrects this. > > If this looks acceptable, I'll also plan to spin up a manpage patch > to help document this change. > > Jeff Layton (4): > cifs: add a cache= option to better describe the different cache > flavors > cifs: add deprecation warnings to strictcache, forcedirectio, and fsc > cifs: display cache= option in /proc/mounts > cifs: add warning about change in default cache semantics in 3.7 > > fs/cifs/cifsfs.c | 22 +++++++++--- > fs/cifs/connect.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++-- > 2 files changed, 109 insertions(+), 9 deletions(-) > > -- > 1.7.7.6 > > -- > 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 The patchset looks good and resonable. Reviewed-by: Pavel Shilovsky <piastry@xxxxxxxxxxx> -- Best regards, Pavel Shilovsky. -- 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