[PATCH 0/4] cifs: alternate approach to fixing oplock queue races

Jeff Layton <[email protected]>
Newsgroups gmane.linux.file-systems.cifs
Message-ID <[email protected]>
This patchset is an alternate approach to fixing the oplock queue
problems. Rather than tracking oplocks with separate structures, this
patchset adds some fields to cifsFileInfo.

When an oplock break comes in, is_valid_oplock_break takes an extra
reference to the cifsFileInfo and queues the oplock break job to the
events workqueue.

This works around the main drawback of the old set, which was that an
oplock break could essentially be ignored if the allocation failed.

This set represents a pretty substantial code reduction since the
dedicated oplock thread is no longer needed with it.

Jeff Layton (4):
  cifs: remove cifsInodeInfo.oplockPending flag
  cifs: take read lock on GlobalSMBSes_lock in is_valid_oplock_break
  cifs: have cifsFileInfo hold an extra inode reference
  cifs: turn oplock breaks into a workqueue job

 fs/cifs/cifsfs.c    |   91 ---------------------------------------------------
 fs/cifs/cifsglob.h  |   15 +++-----
 fs/cifs/cifsproto.h |    5 +--
 fs/cifs/cifssmb.c   |    1 +
 fs/cifs/connect.c   |    1 -
 fs/cifs/dir.c       |    4 ++-
 fs/cifs/file.c      |   52 +++++++++++++++++++++++++++--
 fs/cifs/misc.c      |   27 +++++++++------
 fs/cifs/transport.c |   50 ----------------------------
 9 files changed, 76 insertions(+), 170 deletions(-)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.