Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ad65044 authored by Pavel Shilovsky's avatar Pavel Shilovsky Committed by Steve French
Browse files

CIFS: Move guery file info code to ops struct



and make cifs_get_file_info(_unix) calls static.

Signed-off-by: default avatarPavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: default avatarSteve French <smfrench@gmail.com>
parent f0df737e
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -236,6 +236,9 @@ struct smb_version_operations {
	int (*query_path_info)(const unsigned int, struct cifs_tcon *,
	int (*query_path_info)(const unsigned int, struct cifs_tcon *,
			       struct cifs_sb_info *, const char *,
			       struct cifs_sb_info *, const char *,
			       FILE_ALL_INFO *, bool *);
			       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 */
	/* get server index number */
	int (*get_srv_inum)(const unsigned int, struct cifs_tcon *,
	int (*get_srv_inum)(const unsigned int, struct cifs_tcon *,
			    struct cifs_sb_info *, const char *,
			    struct cifs_sb_info *, const char *,
+0 −2
Original line number Original line Diff line number Diff line
@@ -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,
extern struct inode *cifs_iget(struct super_block *sb,
			       struct cifs_fattr *fattr);
			       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,
extern int cifs_get_inode_info(struct inode **inode, const char *full_path,
			       FILE_ALL_INFO *data, struct super_block *sb,
			       FILE_ALL_INFO *data, struct super_block *sb,
			       int xid, const __u16 *fid);
			       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,
extern int cifs_get_inode_info_unix(struct inode **pinode,
			const unsigned char *search_path,
			const unsigned char *search_path,
			struct super_block *sb, unsigned int xid);
			struct super_block *sb, unsigned int xid);
+9 −3
Original line number Original line Diff line number Diff line
@@ -282,7 +282,8 @@ cifs_create_dfs_fattr(struct cifs_fattr *fattr, struct super_block *sb)
	fattr->cf_flags |= CIFS_FATTR_DFS_REFERRAL;
	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;
	int rc;
	unsigned int xid;
	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;
	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;
	int rc;
	unsigned int xid;
	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 cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
	struct cifsFileInfo *cfile = filp->private_data;
	struct cifsFileInfo *cfile = filp->private_data;
	struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
	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();
	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) {
	switch (rc) {
	case 0:
	case 0:
		cifs_all_info_to_fattr(&fattr, &find_data, cifs_sb, false);
		cifs_all_info_to_fattr(&fattr, &find_data, cifs_sb, false);
+8 −0
Original line number Original line Diff line number Diff line
@@ -489,6 +489,13 @@ cifs_get_srv_inum(const unsigned int xid, struct cifs_tcon *tcon,
						CIFS_MOUNT_MAP_SPECIAL_CHR);
						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 *
static char *
cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,
cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,
			struct cifs_tcon *tcon)
			struct cifs_tcon *tcon)
@@ -672,6 +679,7 @@ struct smb_version_operations smb1_operations = {
	.qfs_tcon = cifs_qfs_tcon,
	.qfs_tcon = cifs_qfs_tcon,
	.is_path_accessible = cifs_is_path_accessible,
	.is_path_accessible = cifs_is_path_accessible,
	.query_path_info = cifs_query_path_info,
	.query_path_info = cifs_query_path_info,
	.query_file_info = cifs_query_file_info,
	.get_srv_inum = cifs_get_srv_inum,
	.get_srv_inum = cifs_get_srv_inum,
	.build_path_to_root = cifs_build_path_to_root,
	.build_path_to_root = cifs_build_path_to_root,
	.echo = CIFSSMBEcho,
	.echo = CIFSSMBEcho,