23 #include <linux/stat.h>
24 #include <linux/slab.h>
26 #include <asm/div64.h>
46 cFYI(1,
"Exclusive Oplock granted on inode %p",
51 cFYI(1,
"Level II Oplock granted on inode %p",
61 int disposition,
int desired_access,
int create_options,
71 if (smb2_path ==
NULL) {
78 if (smb2_data ==
NULL) {
89 rc =
SMB2_open(xid, tcon, smb2_path, &fid->persistent_fid,
90 &fid->volatile_fid, desired_access, disposition,
91 0, 0, smb2_oplock, smb2_data);
108 *oplock = *smb2_oplock;
117 const unsigned int xid)
119 int rc = 0, stored_rc;
120 unsigned int max_num,
num = 0, max_buf;
128 INIT_LIST_HEAD(&tmp_llist);
134 max_buf = tcon->
ses->server->maxBuf;
170 list_move(&li->
llist, &tmp_llist);
171 if (++num == max_num) {
173 cfile->
fid.persistent_fid,
174 cfile->
fid.volatile_fid,
183 &cfile->
llist->locks);
216 int rc = 0, stored_rc;
219 unsigned int num = 0;
228 if (++num == max_num) {
230 cfile->
fid.persistent_fid,
231 cfile->
fid.volatile_fid,
242 cfile->
fid.persistent_fid,
243 cfile->
fid.volatile_fid,
255 int rc = 0, stored_rc;
257 unsigned int max_num, max_buf;
275 max_buf = tlink_tcon(cfile->
tlink)->ses->server->maxBuf;
291 stored_rc = smb2_push_mand_fdlocks(fdlocks, xid, buf, max_num);