This patchset fixes a number of problems with the existing CIFS code. It
eliminates the backreference to the filp from cifsFileInfo, allowing a
cifsFileInfo to outlive the filp that it was generated against.
With that change, most of the closing of a filehandle on the server is
moved to cifsFileInfo_put. cifs_close is then changed to just put the
filehandle instead of trying to wait around for existing users to
finish with it.
With this change, there is some further cleanup that can be done as
well. For instance, there's no real need to continually search for new
filehandles in cifs_writepages now that we hold a reference to one. I'll
hold back on that until I know how this set has been received.
This set is an ordered set and should not be committed out of order. It
should be bisectable. I've tested the resulting set and it seems to work
fine.
Jeff Layton (14):
cifs: keep dentry reference in cifsFileInfo instead of inode
reference
cifs: don't use vfsmount to pin superblock for oplock breaks
cifs: eliminate cifs_posix_open_inode_helper
cifs: eliminate oflags option from cifs_new_fileinfo
cifs: eliminate the inode argument from cifs_new_fileinfo
cifs: clean up cifs_reopen_file
cifs: cifs_write argument change and cleanup
cifs: eliminate pfile pointer from cifsFileInfo
cifs: move cifs_new_fileinfo to file.c
cifs: convert GlobalSMBSeslock from a rwlock to regular spinlock
cifs: move cifsFileInfo_put to file.c
cifs: move close processing from cifs_close to cifsFileInfo_put
cifs: wait for writeback to complete in cifs_flush
cifs: eliminate cifsInodeInfo->write_behind_rc
fs/cifs/cifs_fs_sb.h | 1 +
fs/cifs/cifsfs.c | 21 ++-
fs/cifs/cifsfs.h | 6 +-
fs/cifs/cifsglob.h | 19 +--
fs/cifs/cifsproto.h | 6 +-
fs/cifs/cifssmb.c | 4 +-
fs/cifs/dir.c | 60 +-----
fs/cifs/file.c | 574 +++++++++++++++++++-------------------------------
fs/cifs/inode.c | 15 +-
fs/cifs/misc.c | 18 +--
fs/cifs/readdir.c | 6 +-
11 files changed, 260 insertions(+), 470 deletions(-)
--
1.7.2.3
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html