summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonnie Sahlberg <lsahlber@redhat.com>2018-09-03 13:33:43 +1000
committerSteve French <stfrench@microsoft.com>2018-10-23 21:16:04 -0500
commit47dd9597df41f0f5cc6d86cffbbccce2d9e3a788 (patch)
tree2b2945b32addfd9e6302965383c6242a42574896
parentf733e3936da462265a155f4dd44a333e56d197ed (diff)
cifs: change unlink to use a compound
This,and previous patches, drops the number of roundtrips from five to two for unlink() Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> Signed-off-by: Steve French <stfrench@microsoft.com>
-rw-r--r--fs/cifs/smb2inode.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/cifs/smb2inode.c b/fs/cifs/smb2inode.c
index 9a742164b5f1..78e511c42788 100644
--- a/fs/cifs/smb2inode.c
+++ b/fs/cifs/smb2inode.c
@@ -105,6 +105,8 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
smb2_set_next_command(server, &rqst[num_rqst]);
smb2_set_related(&rqst[num_rqst++]);
break;
+ case SMB2_OP_DELETE:
+ break;
case SMB2_OP_MKDIR:
/*
* Directories are created through parameters in the
@@ -148,6 +150,7 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
if (rqst[2].rq_iov)
SMB2_close_free(&rqst[2]);
break;
+ case SMB2_OP_DELETE:
case SMB2_OP_MKDIR:
if (rqst[1].rq_iov)
SMB2_close_free(&rqst[1]);
@@ -202,8 +205,6 @@ smb2_open_op_close(const unsigned int xid, struct cifs_tcon *tcon,
}
switch (command) {
- case SMB2_OP_DELETE:
- break;
case SMB2_OP_RMDIR:
tmprc = SMB2_rmdir(xid, tcon, fid.persistent_fid,
fid.volatile_fid);
@@ -330,9 +331,9 @@ int
smb2_unlink(const unsigned int xid, struct cifs_tcon *tcon, const char *name,
struct cifs_sb_info *cifs_sb)
{
- return smb2_open_op_close(xid, tcon, cifs_sb, name, DELETE, FILE_OPEN,
- CREATE_DELETE_ON_CLOSE | OPEN_REPARSE_POINT,
- NULL, SMB2_OP_DELETE);
+ return smb2_compound_op(xid, tcon, cifs_sb, name, DELETE, FILE_OPEN,
+ CREATE_DELETE_ON_CLOSE | OPEN_REPARSE_POINT,
+ NULL, SMB2_OP_DELETE);
}
static int