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

Commit 7119e220 authored by Al Viro's avatar Al Viro
Browse files

cifs: get rid of ->f_path.dentry->d_sb uses, add a new helper



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ddb52f4f
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -209,8 +209,7 @@ cifs_statfs(struct dentry *dentry, struct kstatfs *buf)


static long cifs_fallocate(struct file *file, int mode, loff_t off, loff_t len)
static long cifs_fallocate(struct file *file, int mode, loff_t off, loff_t len)
{
{
	struct super_block *sb = file->f_path.dentry->d_sb;
	struct cifs_sb_info *cifs_sb = CIFS_FILE_SB(file);
	struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
	struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb);
	struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb);
	struct TCP_Server_Info *server = tcon->ses->server;
	struct TCP_Server_Info *server = tcon->ses->server;


+6 −0
Original line number Original line Diff line number Diff line
@@ -1168,6 +1168,12 @@ CIFS_SB(struct super_block *sb)
	return sb->s_fs_info;
	return sb->s_fs_info;
}
}


static inline struct cifs_sb_info *
CIFS_FILE_SB(struct file *file)
{
	return CIFS_SB(file_inode(file)->i_sb);
}

static inline char CIFS_DIR_SEP(const struct cifs_sb_info *cifs_sb)
static inline char CIFS_DIR_SEP(const struct cifs_sb_info *cifs_sb)
{
{
	if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS)
	if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS)
+6 −6
Original line number Original line Diff line number Diff line
@@ -1586,7 +1586,7 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *flock)
	cifs_read_flock(flock, &type, &lock, &unlock, &wait_flag,
	cifs_read_flock(flock, &type, &lock, &unlock, &wait_flag,
			tcon->ses->server);
			tcon->ses->server);


	cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
	cifs_sb = CIFS_FILE_SB(file);
	netfid = cfile->fid.netfid;
	netfid = cfile->fid.netfid;
	cinode = CIFS_I(file_inode(file));
	cinode = CIFS_I(file_inode(file));


@@ -2305,7 +2305,7 @@ int cifs_fsync(struct file *file, loff_t start, loff_t end, int datasync)
	struct cifs_tcon *tcon;
	struct cifs_tcon *tcon;
	struct TCP_Server_Info *server;
	struct TCP_Server_Info *server;
	struct cifsFileInfo *smbfile = file->private_data;
	struct cifsFileInfo *smbfile = file->private_data;
	struct cifs_sb_info *cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
	struct cifs_sb_info *cifs_sb = CIFS_FILE_SB(file);
	struct inode *inode = file->f_mapping->host;
	struct inode *inode = file->f_mapping->host;


	rc = filemap_write_and_wait_range(inode->i_mapping, start, end);
	rc = filemap_write_and_wait_range(inode->i_mapping, start, end);
@@ -2585,7 +2585,7 @@ cifs_iovec_write(struct file *file, struct iov_iter *from, loff_t *poffset)
	iov_iter_truncate(from, len);
	iov_iter_truncate(from, len);


	INIT_LIST_HEAD(&wdata_list);
	INIT_LIST_HEAD(&wdata_list);
	cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
	cifs_sb = CIFS_FILE_SB(file);
	open_file = file->private_data;
	open_file = file->private_data;
	tcon = tlink_tcon(open_file->tlink);
	tcon = tlink_tcon(open_file->tlink);


@@ -3010,7 +3010,7 @@ ssize_t cifs_user_readv(struct kiocb *iocb, struct iov_iter *to)
		return 0;
		return 0;


	INIT_LIST_HEAD(&rdata_list);
	INIT_LIST_HEAD(&rdata_list);
	cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
	cifs_sb = CIFS_FILE_SB(file);
	open_file = file->private_data;
	open_file = file->private_data;
	tcon = tlink_tcon(open_file->tlink);
	tcon = tlink_tcon(open_file->tlink);


@@ -3155,7 +3155,7 @@ cifs_read(struct file *file, char *read_data, size_t read_size, loff_t *offset)
	__u32 pid;
	__u32 pid;


	xid = get_xid();
	xid = get_xid();
	cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
	cifs_sb = CIFS_FILE_SB(file);


	/* FIXME: set up handlers for larger reads and/or convert to async */
	/* FIXME: set up handlers for larger reads and/or convert to async */
	rsize = min_t(unsigned int, cifs_sb->rsize, CIFSMaxBufSize);
	rsize = min_t(unsigned int, cifs_sb->rsize, CIFSMaxBufSize);
@@ -3462,7 +3462,7 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
	int rc;
	int rc;
	struct list_head tmplist;
	struct list_head tmplist;
	struct cifsFileInfo *open_file = file->private_data;
	struct cifsFileInfo *open_file = file->private_data;
	struct cifs_sb_info *cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
	struct cifs_sb_info *cifs_sb = CIFS_FILE_SB(file);
	struct TCP_Server_Info *server;
	struct TCP_Server_Info *server;
	pid_t pid;
	pid_t pid;


+3 −3
Original line number Original line Diff line number Diff line
@@ -261,7 +261,7 @@ initiate_cifs_search(const unsigned int xid, struct file *file)
	int rc = 0;
	int rc = 0;
	char *full_path = NULL;
	char *full_path = NULL;
	struct cifsFileInfo *cifsFile;
	struct cifsFileInfo *cifsFile;
	struct cifs_sb_info *cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
	struct cifs_sb_info *cifs_sb = CIFS_FILE_SB(file);
	struct tcon_link *tlink = NULL;
	struct tcon_link *tlink = NULL;
	struct cifs_tcon *tcon;
	struct cifs_tcon *tcon;
	struct TCP_Server_Info *server;
	struct TCP_Server_Info *server;
@@ -561,7 +561,7 @@ find_cifs_entry(const unsigned int xid, struct cifs_tcon *tcon, loff_t pos,
	loff_t first_entry_in_buffer;
	loff_t first_entry_in_buffer;
	loff_t index_to_find = pos;
	loff_t index_to_find = pos;
	struct cifsFileInfo *cfile = file->private_data;
	struct cifsFileInfo *cfile = file->private_data;
	struct cifs_sb_info *cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
	struct cifs_sb_info *cifs_sb = CIFS_FILE_SB(file);
	struct TCP_Server_Info *server = tcon->ses->server;
	struct TCP_Server_Info *server = tcon->ses->server;
	/* check if index in the buffer */
	/* check if index in the buffer */


@@ -679,7 +679,7 @@ static int cifs_filldir(char *find_entry, struct file *file,
		char *scratch_buf, unsigned int max_len)
		char *scratch_buf, unsigned int max_len)
{
{
	struct cifsFileInfo *file_info = file->private_data;
	struct cifsFileInfo *file_info = file->private_data;
	struct super_block *sb = file->f_path.dentry->d_sb;
	struct super_block *sb = file_inode(file)->i_sb;
	struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
	struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
	struct cifs_dirent de = { NULL, };
	struct cifs_dirent de = { NULL, };
	struct cifs_fattr fattr;
	struct cifs_fattr fattr;