[linux-cifs-client] [PATCH 0/4] cifs: fix several bugs in oplock queue handling (RFC)
Jeff Layton
jlayton at redhat.com
Mon Aug 17 06:16:04 MDT 2009
We recently had a customer report panics in the oplock thread:
https://bugzilla.redhat.com/show_bug.cgi?id=516742
It looks like what happened is that an oplock break raced with a
umount, and tcon got torn down before the oplock release call
happened.
They also reported another panic within DeleteTconOplockQEntries. That
function is removing entries from the list but isn't using
list_for_each_entry_safe.
This set is a draft patchset that tries to fix these problems. I'd
appreciate prompt feedback on them. Does this look like a sane approach
to fixing these problems?
Jeff Layton (4):
cifs: protect GlobalOplock_Q with its own mutex
cifs: iterate over cifs_oplock_list using list_for_each_entry_safe
cifs: take reference to inode for oplock breaks
cifs: hold cifs_oplock_mutex while doing oplock release call
fs/cifs/cifsfs.c | 98 +++++++++++++++++++++++++++++----------------------
fs/cifs/cifsglob.h | 6 +++-
fs/cifs/cifsproto.h | 1 -
fs/cifs/misc.c | 9 +++--
fs/cifs/transport.c | 37 ++++++-------------
5 files changed, 78 insertions(+), 73 deletions(-)
More information about the linux-cifs-client
mailing list