mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-18 10:34:24 +08:00
[CIFS] Fix statfs formatting
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
1dbbb60774
commit
39da984711
@ -1,3 +1,6 @@
|
||||
Version 1.53
|
||||
------------
|
||||
|
||||
Version 1.52
|
||||
------------
|
||||
Fix oops on second mount to server when null auth is used.
|
||||
|
@ -222,50 +222,50 @@ static int
|
||||
cifs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
{
|
||||
struct super_block *sb = dentry->d_sb;
|
||||
int xid;
|
||||
struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
|
||||
struct cifsTconInfo *tcon = cifs_sb->tcon;
|
||||
int rc = -EOPNOTSUPP;
|
||||
struct cifs_sb_info *cifs_sb;
|
||||
struct cifsTconInfo *pTcon;
|
||||
int xid;
|
||||
|
||||
xid = GetXid();
|
||||
|
||||
cifs_sb = CIFS_SB(sb);
|
||||
pTcon = cifs_sb->tcon;
|
||||
|
||||
buf->f_type = CIFS_MAGIC_NUMBER;
|
||||
|
||||
/* instead could get the real value via SMB_QUERY_FS_ATTRIBUTE_INFO */
|
||||
buf->f_namelen = PATH_MAX; /* PATH_MAX may be too long - it would
|
||||
presumably be total path, but note
|
||||
that some servers (includinng Samba 3)
|
||||
have a shorter maximum path */
|
||||
/*
|
||||
* PATH_MAX may be too long - it would presumably be total path,
|
||||
* but note that some servers (includinng Samba 3) have a shorter
|
||||
* maximum path.
|
||||
*
|
||||
* Instead could get the real value via SMB_QUERY_FS_ATTRIBUTE_INFO.
|
||||
*/
|
||||
buf->f_namelen = PATH_MAX;
|
||||
buf->f_files = 0; /* undefined */
|
||||
buf->f_ffree = 0; /* unlimited */
|
||||
|
||||
/* BB we could add a second check for a QFS Unix capability bit */
|
||||
/* BB FIXME check CIFS_POSIX_EXTENSIONS Unix cap first FIXME BB */
|
||||
if ((pTcon->ses->capabilities & CAP_UNIX) && (CIFS_POSIX_EXTENSIONS &
|
||||
le64_to_cpu(pTcon->fsUnixInfo.Capability)))
|
||||
rc = CIFSSMBQFSPosixInfo(xid, pTcon, buf);
|
||||
/*
|
||||
* We could add a second check for a QFS Unix capability bit
|
||||
*/
|
||||
if ((tcon->ses->capabilities & CAP_UNIX) &&
|
||||
(CIFS_POSIX_EXTENSIONS & le64_to_cpu(tcon->fsUnixInfo.Capability)))
|
||||
rc = CIFSSMBQFSPosixInfo(xid, tcon, buf);
|
||||
|
||||
/* Only need to call the old QFSInfo if failed
|
||||
on newer one */
|
||||
if (rc)
|
||||
if (pTcon->ses->capabilities & CAP_NT_SMBS)
|
||||
rc = CIFSSMBQFSInfo(xid, pTcon, buf); /* not supported by OS2 */
|
||||
/*
|
||||
* Only need to call the old QFSInfo if failed on newer one,
|
||||
* e.g. by OS/2.
|
||||
**/
|
||||
if (rc && (tcon->ses->capabilities & CAP_NT_SMBS))
|
||||
rc = CIFSSMBQFSInfo(xid, tcon, buf);
|
||||
|
||||
/* Some old Windows servers also do not support level 103, retry with
|
||||
older level one if old server failed the previous call or we
|
||||
bypassed it because we detected that this was an older LANMAN sess */
|
||||
/*
|
||||
* Some old Windows servers also do not support level 103, retry with
|
||||
* older level one if old server failed the previous call or we
|
||||
* bypassed it because we detected that this was an older LANMAN sess
|
||||
*/
|
||||
if (rc)
|
||||
rc = SMBOldQFSInfo(xid, pTcon, buf);
|
||||
/* int f_type;
|
||||
__fsid_t f_fsid;
|
||||
int f_namelen; */
|
||||
/* BB get from info in tcon struct at mount time call to QFSAttrInfo */
|
||||
rc = SMBOldQFSInfo(xid, tcon, buf);
|
||||
|
||||
FreeXid(xid);
|
||||
return 0; /* always return success? what if volume is no
|
||||
longer available? */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cifs_permission(struct inode *inode, int mask, struct nameidata *nd)
|
||||
|
Loading…
Reference in New Issue
Block a user