]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
CIFS: Move guery file info code to ops struct
authorPavel Shilovsky <pshilovsky@samba.org>
Tue, 10 Jul 2012 11:32:52 +0000 (15:32 +0400)
committerSteve French <sfrench@us.ibm.com>
Fri, 14 Sep 2012 12:46:31 +0000 (07:46 -0500)
and make cifs_get_file_info(_unix) calls static.

Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/cifsglob.h
fs/cifs/cifsproto.h
fs/cifs/inode.c
fs/cifs/smb1ops.c

index 8a69dae81d3a3259c1b1b78af2ba210ca3e1af9c..500ecb921b8585d59f704085f43dbb75d9cbc749 100644 (file)
@@ -236,6 +236,9 @@ struct smb_version_operations {
        int (*query_path_info)(const unsigned int, struct cifs_tcon *,
                               struct cifs_sb_info *, const char *,
                               FILE_ALL_INFO *, bool *);
+       /* query file data from the server */
+       int (*query_file_info)(const unsigned int, struct cifs_tcon *,
+                              struct cifs_fid *, FILE_ALL_INFO *);
        /* get server index number */
        int (*get_srv_inum)(const unsigned int, struct cifs_tcon *,
                            struct cifs_sb_info *, const char *,
index b67f7758f4225c0b5a8bc389c4377c0ccae7cebf..2c6ad78a16ccb5c7fa899f7e870aedc0dc59a8cd 100644 (file)
@@ -137,11 +137,9 @@ extern void cifs_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr);
 extern struct inode *cifs_iget(struct super_block *sb,
                               struct cifs_fattr *fattr);
 
-extern int cifs_get_file_info(struct file *filp);
 extern int cifs_get_inode_info(struct inode **inode, const char *full_path,
                               FILE_ALL_INFO *data, struct super_block *sb,
                               int xid, const __u16 *fid);
-extern int cifs_get_file_info_unix(struct file *filp);
 extern int cifs_get_inode_info_unix(struct inode **pinode,
                        const unsigned char *search_path,
                        struct super_block *sb, unsigned int xid);
index ea7428a82a31bbc1db08a09b584de1c57cc5162c..c6f6b02cf3b5f25cce5fe52c37481722ffd41b25 100644 (file)
@@ -282,7 +282,8 @@ cifs_create_dfs_fattr(struct cifs_fattr *fattr, struct super_block *sb)
        fattr->cf_flags |= CIFS_FATTR_DFS_REFERRAL;
 }
 
-int cifs_get_file_info_unix(struct file *filp)
+static int
+cifs_get_file_info_unix(struct file *filp)
 {
        int rc;
        unsigned int xid;
@@ -550,7 +551,8 @@ cifs_all_info_to_fattr(struct cifs_fattr *fattr, FILE_ALL_INFO *info,
        fattr->cf_gid = cifs_sb->mnt_gid;
 }
 
-int cifs_get_file_info(struct file *filp)
+static int
+cifs_get_file_info(struct file *filp)
 {
        int rc;
        unsigned int xid;
@@ -560,9 +562,13 @@ int cifs_get_file_info(struct file *filp)
        struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
        struct cifsFileInfo *cfile = filp->private_data;
        struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
+       struct TCP_Server_Info *server = tcon->ses->server;
+
+       if (!server->ops->query_file_info)
+               return -ENOSYS;
 
        xid = get_xid();
-       rc = CIFSSMBQFileInfo(xid, tcon, cfile->fid.netfid, &find_data);
+       rc = server->ops->query_file_info(xid, tcon, &cfile->fid, &find_data);
        switch (rc) {
        case 0:
                cifs_all_info_to_fattr(&fattr, &find_data, cifs_sb, false);
index bb758476e1399ff03742d095c103251833abf2c9..cbbc122a501ae7b77dfbc8e41364a10f8191818f 100644 (file)
@@ -489,6 +489,13 @@ cifs_get_srv_inum(const unsigned int xid, struct cifs_tcon *tcon,
                                                CIFS_MOUNT_MAP_SPECIAL_CHR);
 }
 
+static int
+cifs_query_file_info(const unsigned int xid, struct cifs_tcon *tcon,
+                    struct cifs_fid *fid, FILE_ALL_INFO *data)
+{
+       return CIFSSMBQFileInfo(xid, tcon, fid->netfid, data);
+}
+
 static char *
 cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,
                        struct cifs_tcon *tcon)
@@ -672,6 +679,7 @@ struct smb_version_operations smb1_operations = {
        .qfs_tcon = cifs_qfs_tcon,
        .is_path_accessible = cifs_is_path_accessible,
        .query_path_info = cifs_query_path_info,
+       .query_file_info = cifs_query_file_info,
        .get_srv_inum = cifs_get_srv_inum,
        .build_path_to_root = cifs_build_path_to_root,
        .echo = CIFSSMBEcho,