diff options
Diffstat (limited to 'fs/cifs/dir.c')
-rw-r--r-- | fs/cifs/dir.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index 5175aebf6737..d62ce0d48141 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c | |||
@@ -204,6 +204,7 @@ cifs_do_create(struct inode *inode, struct dentry *direntry, unsigned int xid, | |||
204 | struct inode *newinode = NULL; | 204 | struct inode *newinode = NULL; |
205 | int disposition; | 205 | int disposition; |
206 | struct TCP_Server_Info *server = tcon->ses->server; | 206 | struct TCP_Server_Info *server = tcon->ses->server; |
207 | struct cifs_open_parms oparms; | ||
207 | 208 | ||
208 | *oplock = 0; | 209 | *oplock = 0; |
209 | if (tcon->ses->server->oplocks) | 210 | if (tcon->ses->server->oplocks) |
@@ -319,9 +320,16 @@ cifs_do_create(struct inode *inode, struct dentry *direntry, unsigned int xid, | |||
319 | if (backup_cred(cifs_sb)) | 320 | if (backup_cred(cifs_sb)) |
320 | create_options |= CREATE_OPEN_BACKUP_INTENT; | 321 | create_options |= CREATE_OPEN_BACKUP_INTENT; |
321 | 322 | ||
322 | rc = server->ops->open(xid, tcon, full_path, disposition, | 323 | oparms.tcon = tcon; |
323 | desired_access, create_options, fid, oplock, | 324 | oparms.cifs_sb = cifs_sb; |
324 | buf, cifs_sb); | 325 | oparms.desired_access = desired_access; |
326 | oparms.create_options = create_options; | ||
327 | oparms.disposition = disposition; | ||
328 | oparms.path = full_path; | ||
329 | oparms.fid = fid; | ||
330 | oparms.reconnect = false; | ||
331 | |||
332 | rc = server->ops->open(xid, &oparms, oplock, buf); | ||
325 | if (rc) { | 333 | if (rc) { |
326 | cifs_dbg(FYI, "cifs_create returned 0x%x\n", rc); | 334 | cifs_dbg(FYI, "cifs_create returned 0x%x\n", rc); |
327 | goto out; | 335 | goto out; |