Skip to content

Commit

Permalink
[PATCH] cifs: Gracefully turn off serverino (when serverino is enable…
Browse files Browse the repository at this point in the history
…d on mount)

Old servers such as NT4 do not support this level of FindFirst (and
retry with a lower infolevel)

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Steve French authored and Linus Torvalds committed Apr 29, 2005
1 parent f654bac commit 75cf6bd
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
2 changes: 1 addition & 1 deletion fs/cifs/netmisc.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ static const struct {
{
ERRDOS, ERRgeneral, NT_STATUS_UNSUCCESSFUL}, {
ERRDOS, ERRbadfunc, NT_STATUS_NOT_IMPLEMENTED}, {
ERRDOS, 87, NT_STATUS_INVALID_INFO_CLASS}, {
ERRDOS, ERRinvlevel, NT_STATUS_INVALID_INFO_CLASS}, {
ERRDOS, 24, NT_STATUS_INFO_LENGTH_MISMATCH}, {
ERRHRD, ERRgeneral, NT_STATUS_ACCESS_VIOLATION}, {
ERRHRD, ERRgeneral, NT_STATUS_IN_PAGE_ERROR}, {
Expand Down
6 changes: 6 additions & 0 deletions fs/cifs/readdir.c
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,7 @@ static int initiate_cifs_search(const int xid, struct file *file)

cFYI(1, ("Full path: %s start at: %lld ", full_path, file->f_pos));

ffirst_retry:
/* test for Unix extensions */
if (pTcon->ses->capabilities & CAP_UNIX) {
cifsFile->srch_inf.info_level = SMB_FIND_FILE_UNIX;
Expand All @@ -336,6 +337,11 @@ static int initiate_cifs_search(const int xid, struct file *file)
&cifsFile->netfid, &cifsFile->srch_inf);
if(rc == 0)
cifsFile->invalidHandle = FALSE;
if((rc == -EOPNOTSUPP) &&
(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM)) {
cifs_sb->mnt_cifs_flags &= ~CIFS_MOUNT_SERVER_INUM;
goto ffirst_retry;
}
kfree(full_path);
return rc;
}
Expand Down

0 comments on commit 75cf6bd

Please sign in to comment.