[linux-cifs-client] Re: [PATCH] cifs: make cifs_statfs readable
Steve French
smfrench at gmail.com
Mon Apr 28 04:04:47 GMT 2008
Reviewed and merged
On Sat, Apr 26, 2008 at 4:33 AM, Christoph Hellwig <hch at lst.de> wrote:
> cifs_statfs is a maze of strange formatting and un-comprehensive
> comments. This patch reformats it to be readable.
>
>
> Index: linux-2.6/fs/cifs/cifsfs.c
> ===================================================================
> --- linux-2.6.orig/fs/cifs/cifsfs.c 2008-04-25 08:30:56.000000000 +0200
> +++ linux-2.6/fs/cifs/cifsfs.c 2008-04-25 08:35:34.000000000 +0200
> @@ -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);
> -
> - /* 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 */
> -
> - /* 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 */
> + /*
> + * 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,
> + * 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
> + */
> 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)
>
--
Thanks,
Steve
More information about the linux-cifs-client
mailing list