Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
9eaa23ae
Commit
9eaa23ae
authored
Dec 09, 2004
by
Steve French
Committed by
Steve French
Dec 09, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[CIFS] Do not block on FindNotify response
Signed-off-by: Steve French (sfrench@us.ibm.com)
parent
bcbf96c5
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
34 additions
and
5 deletions
+34
-5
fs/cifs/CHANGES
fs/cifs/CHANGES
+8
-0
fs/cifs/cifsfs.h
fs/cifs/cifsfs.h
+1
-1
fs/cifs/cifssmb.c
fs/cifs/cifssmb.c
+1
-1
fs/cifs/misc.c
fs/cifs/misc.c
+24
-3
No files found.
fs/cifs/CHANGES
View file @
9eaa23ae
Version 1.27
------------
Turn off DNOTIFY (directory change notification support) by default
(unless built with the experimental flag) to fix hang with KDE
file browser. Fix DNOTIFY flag mappings. Fix hang (in wait_event
waiting on an SMB response) in SendReceive when session dies but
reconnects quickly from another task.
Version 1.26
Version 1.26
------------
------------
Add setfacl support to allow setting of ACLs remotely to Samba 3.10 and later
Add setfacl support to allow setting of ACLs remotely to Samba 3.10 and later
...
...
fs/cifs/cifsfs.h
View file @
9eaa23ae
...
@@ -90,5 +90,5 @@ extern int cifs_setxattr(struct dentry *, const char *, const void *,
...
@@ -90,5 +90,5 @@ extern int cifs_setxattr(struct dentry *, const char *, const void *,
size_t
,
int
);
size_t
,
int
);
extern
ssize_t
cifs_getxattr
(
struct
dentry
*
,
const
char
*
,
void
*
,
size_t
);
extern
ssize_t
cifs_getxattr
(
struct
dentry
*
,
const
char
*
,
void
*
,
size_t
);
extern
ssize_t
cifs_listxattr
(
struct
dentry
*
,
char
*
,
size_t
);
extern
ssize_t
cifs_listxattr
(
struct
dentry
*
,
char
*
,
size_t
);
#define CIFS_VERSION "1.2
6
"
#define CIFS_VERSION "1.2
7
"
#endif
/* _CIFSFS_H */
#endif
/* _CIFSFS_H */
fs/cifs/cifssmb.c
View file @
9eaa23ae
...
@@ -3772,7 +3772,7 @@ int CIFSSMBNotify(const int xid, struct cifsTconInfo *tcon,
...
@@ -3772,7 +3772,7 @@ int CIFSSMBNotify(const int xid, struct cifsTconInfo *tcon,
pSMB
->
ByteCount
=
0
;
pSMB
->
ByteCount
=
0
;
rc
=
SendReceive
(
xid
,
tcon
->
ses
,
(
struct
smb_hdr
*
)
pSMB
,
rc
=
SendReceive
(
xid
,
tcon
->
ses
,
(
struct
smb_hdr
*
)
pSMB
,
(
struct
smb_hdr
*
)
pSMBr
,
&
bytes_returned
,
0
);
(
struct
smb_hdr
*
)
pSMBr
,
&
bytes_returned
,
-
1
);
if
(
rc
)
{
if
(
rc
)
{
cFYI
(
1
,
(
"Error in Notify = %d"
,
rc
));
cFYI
(
1
,
(
"Error in Notify = %d"
,
rc
));
}
}
...
...
fs/cifs/misc.c
View file @
9eaa23ae
...
@@ -175,7 +175,7 @@ cifs_buf_release(void *buf_to_free)
...
@@ -175,7 +175,7 @@ cifs_buf_release(void *buf_to_free)
{
{
if
(
buf_to_free
==
NULL
)
{
if
(
buf_to_free
==
NULL
)
{
cFYI
(
1
,
(
"Null buffer passed to cifs_buf_release"
));
/* cFYI(1, ("Null buffer passed to cifs_buf_release"));*/
return
;
return
;
}
}
mempool_free
(
buf_to_free
,
cifs_req_poolp
);
mempool_free
(
buf_to_free
,
cifs_req_poolp
);
...
@@ -390,8 +390,29 @@ is_valid_oplock_break(struct smb_hdr *buf)
...
@@ -390,8 +390,29 @@ is_valid_oplock_break(struct smb_hdr *buf)
struct
cifsTconInfo
*
tcon
;
struct
cifsTconInfo
*
tcon
;
struct
cifsFileInfo
*
netfile
;
struct
cifsFileInfo
*
netfile
;
/* could add check for smb response flag 0x80 */
cFYI
(
1
,(
"Checking for oplock break or dnotify response"
));
cFYI
(
1
,(
"Checking for oplock break"
));
if
((
pSMB
->
hdr
.
Command
==
SMB_COM_NT_TRANSACT
)
&&
(
pSMB
->
hdr
.
Flags
&
SMBFLG_RESPONSE
))
{
struct
smb_com_transaction_change_notify_rsp
*
pSMBr
=
(
struct
smb_com_transaction_change_notify_rsp
*
)
buf
;
struct
file_notify_information
*
pnotify
;
__u32
data_offset
=
0
;
if
(
pSMBr
->
ByteCount
>
sizeof
(
struct
file_notify_information
))
{
data_offset
=
le32_to_cpu
(
pSMBr
->
DataOffset
);
pnotify
=
(
struct
file_notify_information
*
)((
char
*
)
&
pSMBr
->
hdr
.
Protocol
+
data_offset
);
cFYI
(
1
,(
"dnotify on %s with action: 0x%x"
,
pnotify
->
FileName
,
pnotify
->
Action
));
/* BB removeme BB */
/* cifs_dump_mem("Received notify Data is: ",buf,sizeof(struct smb_hdr)+60); */
return
TRUE
;
}
if
(
pSMBr
->
hdr
.
Status
.
CifsError
)
{
cFYI
(
1
,(
"notify err 0x%d"
,
pSMBr
->
hdr
.
Status
.
CifsError
));
return
TRUE
;
}
return
FALSE
;
}
if
(
pSMB
->
hdr
.
Command
!=
SMB_COM_LOCKING_ANDX
)
if
(
pSMB
->
hdr
.
Command
!=
SMB_COM_LOCKING_ANDX
)
return
FALSE
;
return
FALSE
;
if
(
pSMB
->
hdr
.
Flags
&
SMBFLG_RESPONSE
)
{
if
(
pSMB
->
hdr
.
Flags
&
SMBFLG_RESPONSE
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment