/* Old Windows servers do not support level 103, retry with level one if old server failed the previous call */ if(rc) rc = SMBOldQFSInfo(xid, pTcon, buf); 
cifs_statfs(struct super_block *sb, struct kstatfs *buf){	int xid; 	int rc = -EOPNOTSUPP;	struct cifs_sb_info *cifs_sb;	struct cifsTconInfo *pTcon;	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 */	buf->f_files = 0;	/* undefined */	buf->f_ffree = 0;	/* unlimited */#ifdef CONFIG_CIFS_EXPERIMENTAL/* 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);    /* Only need to call the old QFSInfo if failed    on newer one */    if(rc)#endif /* CIFS_EXPERIMENTAL */	rc = CIFSSMBQFSInfo(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 */	FreeXid(xid);	return 0;		/* always return success? what if volume is no				   longer available? */}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2096243885ee34b78cb57ce835e07c8536a67d2a/cifsfs.c/clean/fs/cifs/cifsfs.c