Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
Commits
d47d7c1a
Commit
d47d7c1a
authored
Feb 28, 2006
by
Steve French
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[CIFS] CIFS readdir perf optimizations part 1
Signed-off-by:
Steve French
<
sfrench@us.ibm.com
>
parent
4b8f930f
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
11 deletions
+27
-11
fs/cifs/cifssmb.c
fs/cifs/cifssmb.c
+7
-1
fs/cifs/file.c
fs/cifs/file.c
+14
-9
fs/cifs/readdir.c
fs/cifs/readdir.c
+6
-1
No files found.
fs/cifs/cifssmb.c
View file @
d47d7c1a
...
@@ -3026,6 +3026,7 @@ findFirstRetry:
...
@@ -3026,6 +3026,7 @@ findFirstRetry:
psrch_inf
->
unicode
=
FALSE
;
psrch_inf
->
unicode
=
FALSE
;
psrch_inf
->
ntwrk_buf_start
=
(
char
*
)
pSMBr
;
psrch_inf
->
ntwrk_buf_start
=
(
char
*
)
pSMBr
;
psrch_inf
->
smallBuf
=
0
;
psrch_inf
->
srch_entries_start
=
psrch_inf
->
srch_entries_start
=
(
char
*
)
&
pSMBr
->
hdr
.
Protocol
+
(
char
*
)
&
pSMBr
->
hdr
.
Protocol
+
le16_to_cpu
(
pSMBr
->
t2
.
DataOffset
);
le16_to_cpu
(
pSMBr
->
t2
.
DataOffset
);
...
@@ -3146,9 +3147,14 @@ int CIFSFindNext(const int xid, struct cifsTconInfo *tcon,
...
@@ -3146,9 +3147,14 @@ int CIFSFindNext(const int xid, struct cifsTconInfo *tcon,
parms
=
(
T2_FNEXT_RSP_PARMS
*
)
response_data
;
parms
=
(
T2_FNEXT_RSP_PARMS
*
)
response_data
;
response_data
=
(
char
*
)
&
pSMBr
->
hdr
.
Protocol
+
response_data
=
(
char
*
)
&
pSMBr
->
hdr
.
Protocol
+
le16_to_cpu
(
pSMBr
->
t2
.
DataOffset
);
le16_to_cpu
(
pSMBr
->
t2
.
DataOffset
);
if
(
psrch_inf
->
smallBuf
)
cifs_small_buf_release
(
psrch_inf
->
ntwrk_buf_start
);
else
cifs_buf_release
(
psrch_inf
->
ntwrk_buf_start
);
cifs_buf_release
(
psrch_inf
->
ntwrk_buf_start
);
psrch_inf
->
srch_entries_start
=
response_data
;
psrch_inf
->
srch_entries_start
=
response_data
;
psrch_inf
->
ntwrk_buf_start
=
(
char
*
)
pSMB
;
psrch_inf
->
ntwrk_buf_start
=
(
char
*
)
pSMB
;
psrch_inf
->
smallBuf
=
0
;
if
(
parms
->
EndofSearch
)
if
(
parms
->
EndofSearch
)
psrch_inf
->
endOfSearch
=
TRUE
;
psrch_inf
->
endOfSearch
=
TRUE
;
else
else
...
...
fs/cifs/file.c
View file @
d47d7c1a
...
@@ -555,6 +555,9 @@ int cifs_closedir(struct inode *inode, struct file *file)
...
@@ -555,6 +555,9 @@ int cifs_closedir(struct inode *inode, struct file *file)
if
(
ptmp
)
{
if
(
ptmp
)
{
cFYI
(
1
,
(
"closedir free smb buf in srch struct"
));
cFYI
(
1
,
(
"closedir free smb buf in srch struct"
));
pCFileStruct
->
srch_inf
.
ntwrk_buf_start
=
NULL
;
pCFileStruct
->
srch_inf
.
ntwrk_buf_start
=
NULL
;
if
(
pCFileStruct
->
srch_inf
.
smallBuf
)
cifs_small_buf_release
(
ptmp
);
else
cifs_buf_release
(
ptmp
);
cifs_buf_release
(
ptmp
);
}
}
ptmp
=
pCFileStruct
->
search_resume_name
;
ptmp
=
pCFileStruct
->
search_resume_name
;
...
@@ -592,11 +595,11 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
...
@@ -592,11 +595,11 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
pfLock
->
fl_end
));
pfLock
->
fl_end
));
if
(
pfLock
->
fl_flags
&
FL_POSIX
)
if
(
pfLock
->
fl_flags
&
FL_POSIX
)
cFYI
(
1
,
(
"Posix
"
));
cFYI
(
1
,
(
"Posix"
));
if
(
pfLock
->
fl_flags
&
FL_FLOCK
)
if
(
pfLock
->
fl_flags
&
FL_FLOCK
)
cFYI
(
1
,
(
"Flock
"
));
cFYI
(
1
,
(
"Flock"
));
if
(
pfLock
->
fl_flags
&
FL_SLEEP
)
{
if
(
pfLock
->
fl_flags
&
FL_SLEEP
)
{
cFYI
(
1
,
(
"Blocking lock
"
));
cFYI
(
1
,
(
"Blocking lock"
));
wait_flag
=
TRUE
;
wait_flag
=
TRUE
;
}
}
if
(
pfLock
->
fl_flags
&
FL_ACCESS
)
if
(
pfLock
->
fl_flags
&
FL_ACCESS
)
...
@@ -612,21 +615,23 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
...
@@ -612,21 +615,23 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
cFYI
(
1
,
(
"F_WRLCK "
));
cFYI
(
1
,
(
"F_WRLCK "
));
numLock
=
1
;
numLock
=
1
;
}
else
if
(
pfLock
->
fl_type
==
F_UNLCK
)
{
}
else
if
(
pfLock
->
fl_type
==
F_UNLCK
)
{
cFYI
(
1
,
(
"F_UNLCK
"
));
cFYI
(
1
,
(
"F_UNLCK"
));
numUnlock
=
1
;
numUnlock
=
1
;
/* Check if unlock includes more than
one lock range */
}
else
if
(
pfLock
->
fl_type
==
F_RDLCK
)
{
}
else
if
(
pfLock
->
fl_type
==
F_RDLCK
)
{
cFYI
(
1
,
(
"F_RDLCK
"
));
cFYI
(
1
,
(
"F_RDLCK"
));
lockType
|=
LOCKING_ANDX_SHARED_LOCK
;
lockType
|=
LOCKING_ANDX_SHARED_LOCK
;
numLock
=
1
;
numLock
=
1
;
}
else
if
(
pfLock
->
fl_type
==
F_EXLCK
)
{
}
else
if
(
pfLock
->
fl_type
==
F_EXLCK
)
{
cFYI
(
1
,
(
"F_EXLCK
"
));
cFYI
(
1
,
(
"F_EXLCK"
));
numLock
=
1
;
numLock
=
1
;
}
else
if
(
pfLock
->
fl_type
==
F_SHLCK
)
{
}
else
if
(
pfLock
->
fl_type
==
F_SHLCK
)
{
cFYI
(
1
,
(
"F_SHLCK
"
));
cFYI
(
1
,
(
"F_SHLCK"
));
lockType
|=
LOCKING_ANDX_SHARED_LOCK
;
lockType
|=
LOCKING_ANDX_SHARED_LOCK
;
numLock
=
1
;
numLock
=
1
;
}
else
}
else
cFYI
(
1
,
(
"Unknown type of lock
"
));
cFYI
(
1
,
(
"Unknown type of lock"
));
cifs_sb
=
CIFS_SB
(
file
->
f_dentry
->
d_sb
);
cifs_sb
=
CIFS_SB
(
file
->
f_dentry
->
d_sb
);
pTcon
=
cifs_sb
->
tcon
;
pTcon
=
cifs_sb
->
tcon
;
...
...
fs/cifs/readdir.c
View file @
d47d7c1a
...
@@ -604,7 +604,12 @@ static int find_cifs_entry(const int xid, struct cifsTconInfo *pTcon,
...
@@ -604,7 +604,12 @@ static int find_cifs_entry(const int xid, struct cifsTconInfo *pTcon,
cifsFile
->
search_resume_name
=
NULL
;
cifsFile
->
search_resume_name
=
NULL
;
if
(
cifsFile
->
srch_inf
.
ntwrk_buf_start
)
{
if
(
cifsFile
->
srch_inf
.
ntwrk_buf_start
)
{
cFYI
(
1
,(
"freeing SMB ff cache buf on search rewind"
));
cFYI
(
1
,(
"freeing SMB ff cache buf on search rewind"
));
cifs_buf_release
(
cifsFile
->
srch_inf
.
ntwrk_buf_start
);
if
(
cifsFile
->
srch_inf
.
smallBuf
)
cifs_small_buf_release
(
cifsFile
->
srch_inf
.
ntwrk_buf_start
);
else
cifs_buf_release
(
cifsFile
->
srch_inf
.
ntwrk_buf_start
);
}
}
rc
=
initiate_cifs_search
(
xid
,
file
);
rc
=
initiate_cifs_search
(
xid
,
file
);
if
(
rc
)
{
if
(
rc
)
{
...
...
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