From 4e8ae47d639e99f03d6225a7aa8b1a52bca7383a Mon Sep 17 00:00:00 2001 From: Steve French Date: Thu, 28 Apr 2005 22:41:04 -0700 Subject: [PATCH] --- yaml --- r: 552 b: refs/heads/master c: 75cf6bdc52d86ca815f1129529e43f0d904b18d5 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/cifs/netmisc.c | 2 +- trunk/fs/cifs/readdir.c | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index cb8fa49b282c..5f490de50e54 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f654bac2227adc5c6956405290eeb4f81f09e9ff +refs/heads/master: 75cf6bdc52d86ca815f1129529e43f0d904b18d5 diff --git a/trunk/fs/cifs/netmisc.c b/trunk/fs/cifs/netmisc.c index 4e34c89cec5d..dfaabc8d8fb6 100644 --- a/trunk/fs/cifs/netmisc.c +++ b/trunk/fs/cifs/netmisc.c @@ -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}, { diff --git a/trunk/fs/cifs/readdir.c b/trunk/fs/cifs/readdir.c index f8bea395ec9e..07838a5ba3a1 100644 --- a/trunk/fs/cifs/readdir.c +++ b/trunk/fs/cifs/readdir.c @@ -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; @@ -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; }