]> Pileus Git - ~andy/linux/blobdiff - fs/cifs/misc.c
Merge tag 'imx-fixes-rc' of git://git.pengutronix.de/git/imx/linux-2.6 into fixes
[~andy/linux] / fs / cifs / misc.c
index ce41fee07e5b87917abe7d2acd5af53e7c2268d8..3a00c0d0cead9d6836f4e449f679a6909f14a89e 100644 (file)
@@ -466,7 +466,7 @@ is_valid_oplock_break(char *buffer, struct TCP_Server_Info *srv)
                        list_for_each(tmp2, &tcon->openFileList) {
                                netfile = list_entry(tmp2, struct cifsFileInfo,
                                                     tlist);
-                               if (pSMB->Fid != netfile->netfid)
+                               if (pSMB->Fid != netfile->fid.netfid)
                                        continue;
 
                                cFYI(1, "file id match, oplock break");
@@ -579,3 +579,33 @@ backup_cred(struct cifs_sb_info *cifs_sb)
 
        return false;
 }
+
+void
+cifs_del_pending_open(struct cifs_pending_open *open)
+{
+       spin_lock(&cifs_file_list_lock);
+       list_del(&open->olist);
+       spin_unlock(&cifs_file_list_lock);
+}
+
+void
+cifs_add_pending_open_locked(struct cifs_fid *fid, struct tcon_link *tlink,
+                            struct cifs_pending_open *open)
+{
+#ifdef CONFIG_CIFS_SMB2
+       memcpy(open->lease_key, fid->lease_key, SMB2_LEASE_KEY_SIZE);
+#endif
+       open->oplock = CIFS_OPLOCK_NO_CHANGE;
+       open->tlink = tlink;
+       fid->pending_open = open;
+       list_add_tail(&open->olist, &tlink_tcon(tlink)->pending_opens);
+}
+
+void
+cifs_add_pending_open(struct cifs_fid *fid, struct tcon_link *tlink,
+                     struct cifs_pending_open *open)
+{
+       spin_lock(&cifs_file_list_lock);
+       cifs_add_pending_open_locked(fid, tlink, open);
+       spin_unlock(&cifs_file_list_lock);
+}