|
@@ -52,7 +52,7 @@ static void cifs_set_ops(struct inode *inode, const bool is_dfs_referral)
|
|
|
|
|
|
|
|
|
/* check if server can support readpages */
|
|
|
- if (cifs_sb->tcon->ses->server->maxBuf <
|
|
|
+ if (cifs_sb_tcon(cifs_sb)->ses->server->maxBuf <
|
|
|
PAGE_CACHE_SIZE + MAX_CIFS_HDR_SIZE)
|
|
|
inode->i_data.a_ops = &cifs_addr_ops_smallbuf;
|
|
|
else
|
|
@@ -315,7 +315,8 @@ int cifs_get_inode_info_unix(struct inode **pinode,
|
|
|
struct cifsTconInfo *tcon;
|
|
|
struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
|
|
|
|
|
|
- tcon = cifs_sb->tcon;
|
|
|
+ tcon = cifs_sb_tcon(cifs_sb);
|
|
|
+
|
|
|
cFYI(1, "Getting info on %s", full_path);
|
|
|
|
|
|
/* could have done a find first instead but this returns more info */
|
|
@@ -360,7 +361,7 @@ cifs_sfu_type(struct cifs_fattr *fattr, const unsigned char *path,
|
|
|
int rc;
|
|
|
int oplock = 0;
|
|
|
__u16 netfid;
|
|
|
- struct cifsTconInfo *pTcon = cifs_sb->tcon;
|
|
|
+ struct cifsTconInfo *pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
char buf[24];
|
|
|
unsigned int bytes_read;
|
|
|
char *pbuf;
|
|
@@ -449,7 +450,7 @@ static int cifs_sfu_mode(struct cifs_fattr *fattr, const unsigned char *path,
|
|
|
char ea_value[4];
|
|
|
__u32 mode;
|
|
|
|
|
|
- rc = CIFSSMBQAllEAs(xid, cifs_sb->tcon, path, "SETFILEBITS",
|
|
|
+ rc = CIFSSMBQAllEAs(xid, cifs_sb_tcon(cifs_sb), path, "SETFILEBITS",
|
|
|
ea_value, 4 /* size of buf */, cifs_sb->local_nls,
|
|
|
cifs_sb->mnt_cifs_flags &
|
|
|
CIFS_MOUNT_MAP_SPECIAL_CHR);
|
|
@@ -489,8 +490,8 @@ cifs_all_info_to_fattr(struct cifs_fattr *fattr, FILE_ALL_INFO *info,
|
|
|
fattr->cf_mtime = cifs_NTtimeToUnix(info->LastWriteTime);
|
|
|
|
|
|
if (adjust_tz) {
|
|
|
- fattr->cf_ctime.tv_sec += cifs_sb->tcon->ses->server->timeAdj;
|
|
|
- fattr->cf_mtime.tv_sec += cifs_sb->tcon->ses->server->timeAdj;
|
|
|
+ fattr->cf_ctime.tv_sec += cifs_sb_tcon(cifs_sb)->ses->server->timeAdj;
|
|
|
+ fattr->cf_mtime.tv_sec += cifs_sb_tcon(cifs_sb)->ses->server->timeAdj;
|
|
|
}
|
|
|
|
|
|
fattr->cf_eof = le64_to_cpu(info->EndOfFile);
|
|
@@ -566,7 +567,7 @@ int cifs_get_inode_info(struct inode **pinode,
|
|
|
bool adjustTZ = false;
|
|
|
struct cifs_fattr fattr;
|
|
|
|
|
|
- pTcon = cifs_sb->tcon;
|
|
|
+ pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
cFYI(1, "Getting info on %s", full_path);
|
|
|
|
|
|
if ((pfindData == NULL) && (*pinode != NULL)) {
|
|
@@ -706,8 +707,8 @@ char *cifs_build_path_to_root(struct cifs_sb_info *cifs_sb)
|
|
|
return full_path;
|
|
|
}
|
|
|
|
|
|
- if (cifs_sb->tcon && (cifs_sb->tcon->Flags & SMB_SHARE_IS_IN_DFS))
|
|
|
- dfsplen = strnlen(cifs_sb->tcon->treeName, MAX_TREE_SIZE + 1);
|
|
|
+ if (cifs_sb_tcon(cifs_sb) && (cifs_sb_tcon(cifs_sb)->Flags & SMB_SHARE_IS_IN_DFS))
|
|
|
+ dfsplen = strnlen(cifs_sb_tcon(cifs_sb)->treeName, MAX_TREE_SIZE + 1);
|
|
|
else
|
|
|
dfsplen = 0;
|
|
|
|
|
@@ -716,7 +717,7 @@ char *cifs_build_path_to_root(struct cifs_sb_info *cifs_sb)
|
|
|
return full_path;
|
|
|
|
|
|
if (dfsplen) {
|
|
|
- strncpy(full_path, cifs_sb->tcon->treeName, dfsplen);
|
|
|
+ strncpy(full_path, cifs_sb_tcon(cifs_sb)->treeName, dfsplen);
|
|
|
/* switch slash direction in prepath depending on whether
|
|
|
* windows or posix style path names
|
|
|
*/
|
|
@@ -841,7 +842,7 @@ struct inode *cifs_root_iget(struct super_block *sb, unsigned long ino)
|
|
|
return ERR_PTR(-ENOMEM);
|
|
|
|
|
|
xid = GetXid();
|
|
|
- if (cifs_sb->tcon->unix_ext)
|
|
|
+ if (cifs_sb_tcon(cifs_sb)->unix_ext)
|
|
|
rc = cifs_get_inode_info_unix(&inode, full_path, sb, xid);
|
|
|
else
|
|
|
rc = cifs_get_inode_info(&inode, full_path, NULL, sb,
|
|
@@ -852,10 +853,10 @@ struct inode *cifs_root_iget(struct super_block *sb, unsigned long ino)
|
|
|
|
|
|
#ifdef CONFIG_CIFS_FSCACHE
|
|
|
/* populate tcon->resource_id */
|
|
|
- cifs_sb->tcon->resource_id = CIFS_I(inode)->uniqueid;
|
|
|
+ cifs_sb_tcon(cifs_sb)->resource_id = CIFS_I(inode)->uniqueid;
|
|
|
#endif
|
|
|
|
|
|
- if (rc && cifs_sb->tcon->ipc) {
|
|
|
+ if (rc && cifs_sb_tcon(cifs_sb)->ipc) {
|
|
|
cFYI(1, "ipc connection - fake read inode");
|
|
|
inode->i_mode |= S_IFDIR;
|
|
|
inode->i_nlink = 2;
|
|
@@ -938,7 +939,7 @@ cifs_set_file_info(struct inode *inode, struct iattr *attrs, int xid,
|
|
|
goto set_via_filehandle;
|
|
|
}
|
|
|
|
|
|
- pTcon = cifs_sb->tcon;
|
|
|
+ pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
|
|
|
/*
|
|
|
* NT4 apparently returns success on this call, but it doesn't
|
|
@@ -1000,7 +1001,7 @@ cifs_rename_pending_delete(char *full_path, struct dentry *dentry, int xid)
|
|
|
struct inode *inode = dentry->d_inode;
|
|
|
struct cifsInodeInfo *cifsInode = CIFS_I(inode);
|
|
|
struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
|
|
|
- struct cifsTconInfo *tcon = cifs_sb->tcon;
|
|
|
+ struct cifsTconInfo *tcon = cifs_sb_tcon(cifs_sb);
|
|
|
__u32 dosattr, origattr;
|
|
|
FILE_BASIC_INFO *info_buf = NULL;
|
|
|
|
|
@@ -1111,7 +1112,7 @@ int cifs_unlink(struct inode *dir, struct dentry *dentry)
|
|
|
struct cifsInodeInfo *cifs_inode;
|
|
|
struct super_block *sb = dir->i_sb;
|
|
|
struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
|
|
|
- struct cifsTconInfo *tcon = cifs_sb->tcon;
|
|
|
+ struct cifsTconInfo *tcon = cifs_sb_tcon(cifs_sb);
|
|
|
struct iattr *attrs = NULL;
|
|
|
__u32 dosattr = 0, origattr = 0;
|
|
|
|
|
@@ -1213,7 +1214,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
|
|
|
xid = GetXid();
|
|
|
|
|
|
cifs_sb = CIFS_SB(inode->i_sb);
|
|
|
- pTcon = cifs_sb->tcon;
|
|
|
+ pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
|
|
|
full_path = build_path_from_dentry(direntry);
|
|
|
if (full_path == NULL) {
|
|
@@ -1394,7 +1395,7 @@ int cifs_rmdir(struct inode *inode, struct dentry *direntry)
|
|
|
xid = GetXid();
|
|
|
|
|
|
cifs_sb = CIFS_SB(inode->i_sb);
|
|
|
- pTcon = cifs_sb->tcon;
|
|
|
+ pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
|
|
|
full_path = build_path_from_dentry(direntry);
|
|
|
if (full_path == NULL) {
|
|
@@ -1435,7 +1436,7 @@ cifs_do_rename(int xid, struct dentry *from_dentry, const char *fromPath,
|
|
|
struct dentry *to_dentry, const char *toPath)
|
|
|
{
|
|
|
struct cifs_sb_info *cifs_sb = CIFS_SB(from_dentry->d_sb);
|
|
|
- struct cifsTconInfo *pTcon = cifs_sb->tcon;
|
|
|
+ struct cifsTconInfo *pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
__u16 srcfid;
|
|
|
int oplock, rc;
|
|
|
|
|
@@ -1486,7 +1487,7 @@ int cifs_rename(struct inode *source_dir, struct dentry *source_dentry,
|
|
|
int xid, rc, tmprc;
|
|
|
|
|
|
cifs_sb = CIFS_SB(source_dir->i_sb);
|
|
|
- tcon = cifs_sb->tcon;
|
|
|
+ tcon = cifs_sb_tcon(cifs_sb);
|
|
|
|
|
|
xid = GetXid();
|
|
|
|
|
@@ -1660,7 +1661,7 @@ int cifs_revalidate_dentry(struct dentry *dentry)
|
|
|
"jiffies %ld", full_path, inode, inode->i_count.counter,
|
|
|
dentry, dentry->d_time, jiffies);
|
|
|
|
|
|
- if (CIFS_SB(sb)->tcon->unix_ext)
|
|
|
+ if (cifs_sb_tcon(CIFS_SB(sb))->unix_ext)
|
|
|
rc = cifs_get_inode_info_unix(&inode, full_path, sb, xid);
|
|
|
else
|
|
|
rc = cifs_get_inode_info(&inode, full_path, NULL, sb,
|
|
@@ -1755,7 +1756,7 @@ cifs_set_file_size(struct inode *inode, struct iattr *attrs,
|
|
|
|
|
|
if (rc != 0) {
|
|
|
if (pTcon == NULL)
|
|
|
- pTcon = cifs_sb->tcon;
|
|
|
+ pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
|
|
|
/* Set file size by pathname rather than by handle
|
|
|
either because no valid, writeable file handle for
|
|
@@ -1901,7 +1902,7 @@ cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs)
|
|
|
rc = CIFSSMBUnixSetFileInfo(xid, pTcon, args, nfid, npid);
|
|
|
cifsFileInfo_put(open_file);
|
|
|
} else {
|
|
|
- pTcon = cifs_sb->tcon;
|
|
|
+ pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
rc = CIFSSMBUnixSetPathInfo(xid, pTcon, full_path, args,
|
|
|
cifs_sb->local_nls,
|
|
|
cifs_sb->mnt_cifs_flags &
|
|
@@ -2086,7 +2087,7 @@ cifs_setattr(struct dentry *direntry, struct iattr *attrs)
|
|
|
{
|
|
|
struct inode *inode = direntry->d_inode;
|
|
|
struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
|
|
|
- struct cifsTconInfo *pTcon = cifs_sb->tcon;
|
|
|
+ struct cifsTconInfo *pTcon = cifs_sb_tcon(cifs_sb);
|
|
|
|
|
|
if (pTcon->unix_ext)
|
|
|
return cifs_setattr_unix(direntry, attrs);
|