diff options
author | Jeff Layton <jlayton@redhat.com> | 2010-09-20 19:01:33 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2010-09-29 15:04:32 -0400 |
commit | a6e8a8455c94565c53e1a1756d2ab9d9e3a902b8 (patch) | |
tree | 544628293da6aa14a136c915d887d0abdc689a03 /fs/cifs | |
parent | ba00ba64cf0895e4c2ac507e56306363dc125a90 (diff) |
cifs: add function to get a tcon from cifs_sb
When we convert cifs to do multiple sessions per mount, we'll need more
than one tcon per superblock. At that point "cifs_sb->tcon" will make
no sense. Add a new accessor function that gets a tcon given a cifs_sb.
For now, it just returns cifs_sb->tcon. Later it'll do more.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/cifs_dfs_ref.c | 2 | ||||
-rw-r--r-- | fs/cifs/cifsacl.c | 16 | ||||
-rw-r--r-- | fs/cifs/cifsfs.c | 11 | ||||
-rw-r--r-- | fs/cifs/cifsglob.h | 6 | ||||
-rw-r--r-- | fs/cifs/connect.c | 4 | ||||
-rw-r--r-- | fs/cifs/dir.c | 20 | ||||
-rw-r--r-- | fs/cifs/file.c | 4 | ||||
-rw-r--r-- | fs/cifs/fscache.c | 7 | ||||
-rw-r--r-- | fs/cifs/inode.c | 49 | ||||
-rw-r--r-- | fs/cifs/link.c | 8 | ||||
-rw-r--r-- | fs/cifs/misc.c | 2 | ||||
-rw-r--r-- | fs/cifs/readdir.c | 8 | ||||
-rw-r--r-- | fs/cifs/xattr.c | 8 |
13 files changed, 74 insertions, 71 deletions
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c index d6ced7aa23cf..f1e13ea45a17 100644 --- a/fs/cifs/cifs_dfs_ref.c +++ b/fs/cifs/cifs_dfs_ref.c | |||
@@ -316,7 +316,7 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd) | |||
316 | nd->path.dentry = dget(dentry); | 316 | nd->path.dentry = dget(dentry); |
317 | 317 | ||
318 | cifs_sb = CIFS_SB(dentry->d_inode->i_sb); | 318 | cifs_sb = CIFS_SB(dentry->d_inode->i_sb); |
319 | ses = cifs_sb->tcon->ses; | 319 | ses = cifs_sb_tcon(cifs_sb)->ses; |
320 | 320 | ||
321 | if (!ses) { | 321 | if (!ses) { |
322 | rc = -EINVAL; | 322 | rc = -EINVAL; |
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c index 85d7cf7ff2c8..32f244909a0d 100644 --- a/fs/cifs/cifsacl.c +++ b/fs/cifs/cifsacl.c | |||
@@ -559,7 +559,7 @@ static struct cifs_ntsd *get_cifs_acl_by_fid(struct cifs_sb_info *cifs_sb, | |||
559 | int xid, rc; | 559 | int xid, rc; |
560 | 560 | ||
561 | xid = GetXid(); | 561 | xid = GetXid(); |
562 | rc = CIFSSMBGetCIFSACL(xid, cifs_sb->tcon, fid, &pntsd, pacllen); | 562 | rc = CIFSSMBGetCIFSACL(xid, cifs_sb_tcon(cifs_sb), fid, &pntsd, pacllen); |
563 | FreeXid(xid); | 563 | FreeXid(xid); |
564 | 564 | ||
565 | 565 | ||
@@ -577,7 +577,7 @@ static struct cifs_ntsd *get_cifs_acl_by_path(struct cifs_sb_info *cifs_sb, | |||
577 | 577 | ||
578 | xid = GetXid(); | 578 | xid = GetXid(); |
579 | 579 | ||
580 | rc = CIFSSMBOpen(xid, cifs_sb->tcon, path, FILE_OPEN, READ_CONTROL, 0, | 580 | rc = CIFSSMBOpen(xid, cifs_sb_tcon(cifs_sb), path, FILE_OPEN, READ_CONTROL, 0, |
581 | &fid, &oplock, NULL, cifs_sb->local_nls, | 581 | &fid, &oplock, NULL, cifs_sb->local_nls, |
582 | cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); | 582 | cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); |
583 | if (rc) { | 583 | if (rc) { |
@@ -585,10 +585,10 @@ static struct cifs_ntsd *get_cifs_acl_by_path(struct cifs_sb_info *cifs_sb, | |||
585 | goto out; | 585 | goto out; |
586 | } | 586 | } |
587 | 587 | ||
588 | rc = CIFSSMBGetCIFSACL(xid, cifs_sb->tcon, fid, &pntsd, pacllen); | 588 | rc = CIFSSMBGetCIFSACL(xid, cifs_sb_tcon(cifs_sb), fid, &pntsd, pacllen); |
589 | cFYI(1, "GetCIFSACL rc = %d ACL len %d", rc, *pacllen); | 589 | cFYI(1, "GetCIFSACL rc = %d ACL len %d", rc, *pacllen); |
590 | 590 | ||
591 | CIFSSMBClose(xid, cifs_sb->tcon, fid); | 591 | CIFSSMBClose(xid, cifs_sb_tcon(cifs_sb), fid); |
592 | out: | 592 | out: |
593 | FreeXid(xid); | 593 | FreeXid(xid); |
594 | return pntsd; | 594 | return pntsd; |
@@ -618,7 +618,7 @@ static int set_cifs_acl_by_fid(struct cifs_sb_info *cifs_sb, __u16 fid, | |||
618 | int xid, rc; | 618 | int xid, rc; |
619 | 619 | ||
620 | xid = GetXid(); | 620 | xid = GetXid(); |
621 | rc = CIFSSMBSetCIFSACL(xid, cifs_sb->tcon, fid, pnntsd, acllen); | 621 | rc = CIFSSMBSetCIFSACL(xid, cifs_sb_tcon(cifs_sb), fid, pnntsd, acllen); |
622 | FreeXid(xid); | 622 | FreeXid(xid); |
623 | 623 | ||
624 | cFYI(DBG2, "SetCIFSACL rc = %d", rc); | 624 | cFYI(DBG2, "SetCIFSACL rc = %d", rc); |
@@ -634,7 +634,7 @@ static int set_cifs_acl_by_path(struct cifs_sb_info *cifs_sb, const char *path, | |||
634 | 634 | ||
635 | xid = GetXid(); | 635 | xid = GetXid(); |
636 | 636 | ||
637 | rc = CIFSSMBOpen(xid, cifs_sb->tcon, path, FILE_OPEN, WRITE_DAC, 0, | 637 | rc = CIFSSMBOpen(xid, cifs_sb_tcon(cifs_sb), path, FILE_OPEN, WRITE_DAC, 0, |
638 | &fid, &oplock, NULL, cifs_sb->local_nls, | 638 | &fid, &oplock, NULL, cifs_sb->local_nls, |
639 | cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); | 639 | cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); |
640 | if (rc) { | 640 | if (rc) { |
@@ -642,10 +642,10 @@ static int set_cifs_acl_by_path(struct cifs_sb_info *cifs_sb, const char *path, | |||
642 | goto out; | 642 | goto out; |
643 | } | 643 | } |
644 | 644 | ||
645 | rc = CIFSSMBSetCIFSACL(xid, cifs_sb->tcon, fid, pnntsd, acllen); | 645 | rc = CIFSSMBSetCIFSACL(xid, cifs_sb_tcon(cifs_sb), fid, pnntsd, acllen); |
646 | cFYI(DBG2, "SetCIFSACL rc = %d", rc); | 646 | cFYI(DBG2, "SetCIFSACL rc = %d", rc); |
647 | 647 | ||
648 | CIFSSMBClose(xid, cifs_sb->tcon, fid); | 648 | CIFSSMBClose(xid, cifs_sb_tcon(cifs_sb), fid); |
649 | out: | 649 | out: |
650 | FreeXid(xid); | 650 | FreeXid(xid); |
651 | return rc; | 651 | return rc; |
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 7193494efc03..b9624abb7261 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -137,9 +137,6 @@ cifs_read_super(struct super_block *sb, void *data, | |||
137 | sb->s_magic = CIFS_MAGIC_NUMBER; | 137 | sb->s_magic = CIFS_MAGIC_NUMBER; |
138 | sb->s_op = &cifs_super_ops; | 138 | sb->s_op = &cifs_super_ops; |
139 | sb->s_bdi = &cifs_sb->bdi; | 139 | sb->s_bdi = &cifs_sb->bdi; |
140 | /* if (cifs_sb->tcon->ses->server->maxBuf > MAX_CIFS_HDR_SIZE + 512) | ||
141 | sb->s_blocksize = | ||
142 | cifs_sb->tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE; */ | ||
143 | sb->s_blocksize = CIFS_MAX_MSGSIZE; | 140 | sb->s_blocksize = CIFS_MAX_MSGSIZE; |
144 | sb->s_blocksize_bits = 14; /* default 2**14 = CIFS_MAX_MSGSIZE */ | 141 | sb->s_blocksize_bits = 14; /* default 2**14 = CIFS_MAX_MSGSIZE */ |
145 | inode = cifs_root_iget(sb, ROOT_I); | 142 | inode = cifs_root_iget(sb, ROOT_I); |
@@ -225,7 +222,7 @@ cifs_statfs(struct dentry *dentry, struct kstatfs *buf) | |||
225 | { | 222 | { |
226 | struct super_block *sb = dentry->d_sb; | 223 | struct super_block *sb = dentry->d_sb; |
227 | struct cifs_sb_info *cifs_sb = CIFS_SB(sb); | 224 | struct cifs_sb_info *cifs_sb = CIFS_SB(sb); |
228 | struct cifsTconInfo *tcon = cifs_sb->tcon; | 225 | struct cifsTconInfo *tcon = cifs_sb_tcon(cifs_sb); |
229 | int rc = -EOPNOTSUPP; | 226 | int rc = -EOPNOTSUPP; |
230 | int xid; | 227 | int xid; |
231 | 228 | ||
@@ -367,7 +364,7 @@ static int | |||
367 | cifs_show_options(struct seq_file *s, struct vfsmount *m) | 364 | cifs_show_options(struct seq_file *s, struct vfsmount *m) |
368 | { | 365 | { |
369 | struct cifs_sb_info *cifs_sb = CIFS_SB(m->mnt_sb); | 366 | struct cifs_sb_info *cifs_sb = CIFS_SB(m->mnt_sb); |
370 | struct cifsTconInfo *tcon = cifs_sb->tcon; | 367 | struct cifsTconInfo *tcon = cifs_sb_tcon(cifs_sb); |
371 | struct sockaddr *srcaddr; | 368 | struct sockaddr *srcaddr; |
372 | srcaddr = (struct sockaddr *)&tcon->ses->server->srcaddr; | 369 | srcaddr = (struct sockaddr *)&tcon->ses->server->srcaddr; |
373 | 370 | ||
@@ -458,9 +455,7 @@ static void cifs_umount_begin(struct super_block *sb) | |||
458 | if (cifs_sb == NULL) | 455 | if (cifs_sb == NULL) |
459 | return; | 456 | return; |
460 | 457 | ||
461 | tcon = cifs_sb->tcon; | 458 | tcon = cifs_sb_tcon(cifs_sb); |
462 | if (tcon == NULL) | ||
463 | return; | ||
464 | 459 | ||
465 | read_lock(&cifs_tcp_ses_lock); | 460 | read_lock(&cifs_tcp_ses_lock); |
466 | if ((tcon->tc_count > 1) || (tcon->tidStatus == CifsExiting)) { | 461 | if ((tcon->tc_count > 1) || (tcon->tidStatus == CifsExiting)) { |
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index 6f3968a5fea4..c3510168438e 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h | |||
@@ -413,6 +413,12 @@ CIFS_SB(struct super_block *sb) | |||
413 | return sb->s_fs_info; | 413 | return sb->s_fs_info; |
414 | } | 414 | } |
415 | 415 | ||
416 | static inline struct cifsTconInfo * | ||
417 | cifs_sb_tcon(struct cifs_sb_info *cifs_sb) | ||
418 | { | ||
419 | return cifs_sb->tcon; | ||
420 | } | ||
421 | |||
416 | static inline char CIFS_DIR_SEP(const struct cifs_sb_info *cifs_sb) | 422 | static inline char CIFS_DIR_SEP(const struct cifs_sb_info *cifs_sb) |
417 | { | 423 | { |
418 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) | 424 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) |
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 230410e0a453..c42d37fb5b7c 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -3026,8 +3026,8 @@ cifs_umount(struct super_block *sb, struct cifs_sb_info *cifs_sb) | |||
3026 | int rc = 0; | 3026 | int rc = 0; |
3027 | char *tmp; | 3027 | char *tmp; |
3028 | 3028 | ||
3029 | if (cifs_sb->tcon) | 3029 | if (cifs_sb_tcon(cifs_sb)) |
3030 | cifs_put_tcon(cifs_sb->tcon); | 3030 | cifs_put_tcon(cifs_sb_tcon(cifs_sb)); |
3031 | 3031 | ||
3032 | cifs_sb->tcon = NULL; | 3032 | cifs_sb->tcon = NULL; |
3033 | tmp = cifs_sb->prepath; | 3033 | tmp = cifs_sb->prepath; |
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index 613589cf5172..f660a15eb14f 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c | |||
@@ -64,8 +64,8 @@ build_path_from_dentry(struct dentry *direntry) | |||
64 | cifs_sb = CIFS_SB(direntry->d_sb); | 64 | cifs_sb = CIFS_SB(direntry->d_sb); |
65 | dirsep = CIFS_DIR_SEP(cifs_sb); | 65 | dirsep = CIFS_DIR_SEP(cifs_sb); |
66 | pplen = cifs_sb->prepathlen; | 66 | pplen = cifs_sb->prepathlen; |
67 | if (cifs_sb->tcon && (cifs_sb->tcon->Flags & SMB_SHARE_IS_IN_DFS)) | 67 | if (cifs_sb_tcon(cifs_sb) && (cifs_sb_tcon(cifs_sb)->Flags & SMB_SHARE_IS_IN_DFS)) |
68 | dfsplen = strnlen(cifs_sb->tcon->treeName, MAX_TREE_SIZE + 1); | 68 | dfsplen = strnlen(cifs_sb_tcon(cifs_sb)->treeName, MAX_TREE_SIZE + 1); |
69 | else | 69 | else |
70 | dfsplen = 0; | 70 | dfsplen = 0; |
71 | cifs_bp_rename_retry: | 71 | cifs_bp_rename_retry: |
@@ -117,7 +117,7 @@ cifs_bp_rename_retry: | |||
117 | /* BB test paths to Windows with '/' in the midst of prepath */ | 117 | /* BB test paths to Windows with '/' in the midst of prepath */ |
118 | 118 | ||
119 | if (dfsplen) { | 119 | if (dfsplen) { |
120 | strncpy(full_path, cifs_sb->tcon->treeName, dfsplen); | 120 | strncpy(full_path, cifs_sb_tcon(cifs_sb)->treeName, dfsplen); |
121 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) { | 121 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) { |
122 | int i; | 122 | int i; |
123 | for (i = 0; i < dfsplen; i++) { | 123 | for (i = 0; i < dfsplen; i++) { |
@@ -150,7 +150,7 @@ cifs_new_fileinfo(struct inode *newinode, __u16 fileHandle, | |||
150 | pCifsFile->pfile = file; | 150 | pCifsFile->pfile = file; |
151 | pCifsFile->invalidHandle = false; | 151 | pCifsFile->invalidHandle = false; |
152 | pCifsFile->closePend = false; | 152 | pCifsFile->closePend = false; |
153 | pCifsFile->tcon = cifs_sb->tcon; | 153 | pCifsFile->tcon = cifs_sb_tcon(cifs_sb); |
154 | mutex_init(&pCifsFile->fh_mutex); | 154 | mutex_init(&pCifsFile->fh_mutex); |
155 | mutex_init(&pCifsFile->lock_mutex); | 155 | mutex_init(&pCifsFile->lock_mutex); |
156 | INIT_LIST_HEAD(&pCifsFile->llist); | 156 | INIT_LIST_HEAD(&pCifsFile->llist); |
@@ -158,7 +158,7 @@ cifs_new_fileinfo(struct inode *newinode, __u16 fileHandle, | |||
158 | INIT_WORK(&pCifsFile->oplock_break, cifs_oplock_break); | 158 | INIT_WORK(&pCifsFile->oplock_break, cifs_oplock_break); |
159 | 159 | ||
160 | write_lock(&GlobalSMBSeslock); | 160 | write_lock(&GlobalSMBSeslock); |
161 | list_add(&pCifsFile->tlist, &cifs_sb->tcon->openFileList); | 161 | list_add(&pCifsFile->tlist, &cifs_sb_tcon(cifs_sb)->openFileList); |
162 | pCifsInode = CIFS_I(newinode); | 162 | pCifsInode = CIFS_I(newinode); |
163 | if (pCifsInode) { | 163 | if (pCifsInode) { |
164 | /* if readable file instance put first in list*/ | 164 | /* if readable file instance put first in list*/ |
@@ -225,7 +225,7 @@ int cifs_posix_open(char *full_path, struct inode **pinode, | |||
225 | posix_flags |= SMB_O_DIRECT; | 225 | posix_flags |= SMB_O_DIRECT; |
226 | 226 | ||
227 | mode &= ~current_umask(); | 227 | mode &= ~current_umask(); |
228 | rc = CIFSPOSIXCreate(xid, cifs_sb->tcon, posix_flags, mode, | 228 | rc = CIFSPOSIXCreate(xid, cifs_sb_tcon(cifs_sb), posix_flags, mode, |
229 | pnetfid, presp_data, poplock, full_path, | 229 | pnetfid, presp_data, poplock, full_path, |
230 | cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & | 230 | cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & |
231 | CIFS_MOUNT_MAP_SPECIAL_CHR); | 231 | CIFS_MOUNT_MAP_SPECIAL_CHR); |
@@ -298,7 +298,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, | |||
298 | xid = GetXid(); | 298 | xid = GetXid(); |
299 | 299 | ||
300 | cifs_sb = CIFS_SB(inode->i_sb); | 300 | cifs_sb = CIFS_SB(inode->i_sb); |
301 | tcon = cifs_sb->tcon; | 301 | tcon = cifs_sb_tcon(cifs_sb); |
302 | 302 | ||
303 | full_path = build_path_from_dentry(direntry); | 303 | full_path = build_path_from_dentry(direntry); |
304 | if (full_path == NULL) { | 304 | if (full_path == NULL) { |
@@ -373,7 +373,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, | |||
373 | if (!tcon->unix_ext && (mode & S_IWUGO) == 0) | 373 | if (!tcon->unix_ext && (mode & S_IWUGO) == 0) |
374 | create_options |= CREATE_OPTION_READONLY; | 374 | create_options |= CREATE_OPTION_READONLY; |
375 | 375 | ||
376 | if (cifs_sb->tcon->ses->capabilities & CAP_NT_SMBS) | 376 | if (tcon->ses->capabilities & CAP_NT_SMBS) |
377 | rc = CIFSSMBOpen(xid, tcon, full_path, disposition, | 377 | rc = CIFSSMBOpen(xid, tcon, full_path, disposition, |
378 | desiredAccess, create_options, | 378 | desiredAccess, create_options, |
379 | &fileHandle, &oplock, buf, cifs_sb->local_nls, | 379 | &fileHandle, &oplock, buf, cifs_sb->local_nls, |
@@ -504,7 +504,7 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, int mode, | |||
504 | xid = GetXid(); | 504 | xid = GetXid(); |
505 | 505 | ||
506 | cifs_sb = CIFS_SB(inode->i_sb); | 506 | cifs_sb = CIFS_SB(inode->i_sb); |
507 | pTcon = cifs_sb->tcon; | 507 | pTcon = cifs_sb_tcon(cifs_sb); |
508 | 508 | ||
509 | full_path = build_path_from_dentry(direntry); | 509 | full_path = build_path_from_dentry(direntry); |
510 | if (full_path == NULL) { | 510 | if (full_path == NULL) { |
@@ -631,7 +631,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, | |||
631 | /* check whether path exists */ | 631 | /* check whether path exists */ |
632 | 632 | ||
633 | cifs_sb = CIFS_SB(parent_dir_inode->i_sb); | 633 | cifs_sb = CIFS_SB(parent_dir_inode->i_sb); |
634 | pTcon = cifs_sb->tcon; | 634 | pTcon = cifs_sb_tcon(cifs_sb); |
635 | 635 | ||
636 | /* | 636 | /* |
637 | * Don't allow the separator character in a path component. | 637 | * Don't allow the separator character in a path component. |
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index 84979fc77862..6712c2b0a0ae 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -235,7 +235,7 @@ int cifs_open(struct inode *inode, struct file *file) | |||
235 | xid = GetXid(); | 235 | xid = GetXid(); |
236 | 236 | ||
237 | cifs_sb = CIFS_SB(inode->i_sb); | 237 | cifs_sb = CIFS_SB(inode->i_sb); |
238 | tcon = cifs_sb->tcon; | 238 | tcon = cifs_sb_tcon(cifs_sb); |
239 | 239 | ||
240 | pCifsInode = CIFS_I(file->f_path.dentry->d_inode); | 240 | pCifsInode = CIFS_I(file->f_path.dentry->d_inode); |
241 | 241 | ||
@@ -345,7 +345,7 @@ int cifs_open(struct inode *inode, struct file *file) | |||
345 | goto out; | 345 | goto out; |
346 | } | 346 | } |
347 | 347 | ||
348 | if (cifs_sb->tcon->ses->capabilities & CAP_NT_SMBS) | 348 | if (tcon->ses->capabilities & CAP_NT_SMBS) |
349 | rc = CIFSSMBOpen(xid, tcon, full_path, disposition, | 349 | rc = CIFSSMBOpen(xid, tcon, full_path, disposition, |
350 | desiredAccess, CREATE_NOT_DIR, &netfid, &oplock, buf, | 350 | desiredAccess, CREATE_NOT_DIR, &netfid, &oplock, buf, |
351 | cifs_sb->local_nls, cifs_sb->mnt_cifs_flags | 351 | cifs_sb->local_nls, cifs_sb->mnt_cifs_flags |
diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c index 9f3f5c4be161..ec4318b019cc 100644 --- a/fs/cifs/fscache.c +++ b/fs/cifs/fscache.c | |||
@@ -66,11 +66,11 @@ static void cifs_fscache_enable_inode_cookie(struct inode *inode) | |||
66 | if (cifsi->fscache) | 66 | if (cifsi->fscache) |
67 | return; | 67 | return; |
68 | 68 | ||
69 | cifsi->fscache = fscache_acquire_cookie(cifs_sb->tcon->fscache, | 69 | cifsi->fscache = fscache_acquire_cookie(cifs_sb_tcon(cifs_sb)->fscache, |
70 | &cifs_fscache_inode_object_def, | 70 | &cifs_fscache_inode_object_def, |
71 | cifsi); | 71 | cifsi); |
72 | cFYI(1, "CIFS: got FH cookie (0x%p/0x%p)", | 72 | cFYI(1, "CIFS: got FH cookie (0x%p/0x%p)", |
73 | cifs_sb->tcon->fscache, cifsi->fscache); | 73 | cifs_sb_tcon(cifs_sb)->fscache, cifsi->fscache); |
74 | } | 74 | } |
75 | 75 | ||
76 | void cifs_fscache_release_inode_cookie(struct inode *inode) | 76 | void cifs_fscache_release_inode_cookie(struct inode *inode) |
@@ -117,7 +117,8 @@ void cifs_fscache_reset_inode_cookie(struct inode *inode) | |||
117 | /* retire the current fscache cache and get a new one */ | 117 | /* retire the current fscache cache and get a new one */ |
118 | fscache_relinquish_cookie(cifsi->fscache, 1); | 118 | fscache_relinquish_cookie(cifsi->fscache, 1); |
119 | 119 | ||
120 | cifsi->fscache = fscache_acquire_cookie(cifs_sb->tcon->fscache, | 120 | cifsi->fscache = fscache_acquire_cookie( |
121 | cifs_sb_tcon(cifs_sb)->fscache, | ||
121 | &cifs_fscache_inode_object_def, | 122 | &cifs_fscache_inode_object_def, |
122 | cifsi); | 123 | cifsi); |
123 | cFYI(1, "CIFS: new cookie 0x%p oldcookie 0x%p", | 124 | cFYI(1, "CIFS: new cookie 0x%p oldcookie 0x%p", |
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 0fa145596fcf..dce2d598927e 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -52,7 +52,7 @@ static void cifs_set_ops(struct inode *inode, const bool is_dfs_referral) | |||
52 | 52 | ||
53 | 53 | ||
54 | /* check if server can support readpages */ | 54 | /* check if server can support readpages */ |
55 | if (cifs_sb->tcon->ses->server->maxBuf < | 55 | if (cifs_sb_tcon(cifs_sb)->ses->server->maxBuf < |
56 | PAGE_CACHE_SIZE + MAX_CIFS_HDR_SIZE) | 56 | PAGE_CACHE_SIZE + MAX_CIFS_HDR_SIZE) |
57 | inode->i_data.a_ops = &cifs_addr_ops_smallbuf; | 57 | inode->i_data.a_ops = &cifs_addr_ops_smallbuf; |
58 | else | 58 | else |
@@ -315,7 +315,8 @@ int cifs_get_inode_info_unix(struct inode **pinode, | |||
315 | struct cifsTconInfo *tcon; | 315 | struct cifsTconInfo *tcon; |
316 | struct cifs_sb_info *cifs_sb = CIFS_SB(sb); | 316 | struct cifs_sb_info *cifs_sb = CIFS_SB(sb); |
317 | 317 | ||
318 | tcon = cifs_sb->tcon; | 318 | tcon = cifs_sb_tcon(cifs_sb); |
319 | |||
319 | cFYI(1, "Getting info on %s", full_path); | 320 | cFYI(1, "Getting info on %s", full_path); |
320 | 321 | ||
321 | /* could have done a find first instead but this returns more info */ | 322 | /* 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, | |||
360 | int rc; | 361 | int rc; |
361 | int oplock = 0; | 362 | int oplock = 0; |
362 | __u16 netfid; | 363 | __u16 netfid; |
363 | struct cifsTconInfo *pTcon = cifs_sb->tcon; | 364 | struct cifsTconInfo *pTcon = cifs_sb_tcon(cifs_sb); |
364 | char buf[24]; | 365 | char buf[24]; |
365 | unsigned int bytes_read; | 366 | unsigned int bytes_read; |
366 | char *pbuf; | 367 | char *pbuf; |
@@ -449,7 +450,7 @@ static int cifs_sfu_mode(struct cifs_fattr *fattr, const unsigned char *path, | |||
449 | char ea_value[4]; | 450 | char ea_value[4]; |
450 | __u32 mode; | 451 | __u32 mode; |
451 | 452 | ||
452 | rc = CIFSSMBQAllEAs(xid, cifs_sb->tcon, path, "SETFILEBITS", | 453 | rc = CIFSSMBQAllEAs(xid, cifs_sb_tcon(cifs_sb), path, "SETFILEBITS", |
453 | ea_value, 4 /* size of buf */, cifs_sb->local_nls, | 454 | ea_value, 4 /* size of buf */, cifs_sb->local_nls, |
454 | cifs_sb->mnt_cifs_flags & | 455 | cifs_sb->mnt_cifs_flags & |
455 | CIFS_MOUNT_MAP_SPECIAL_CHR); | 456 | CIFS_MOUNT_MAP_SPECIAL_CHR); |
@@ -489,8 +490,8 @@ cifs_all_info_to_fattr(struct cifs_fattr *fattr, FILE_ALL_INFO *info, | |||
489 | fattr->cf_mtime = cifs_NTtimeToUnix(info->LastWriteTime); | 490 | fattr->cf_mtime = cifs_NTtimeToUnix(info->LastWriteTime); |
490 | 491 | ||
491 | if (adjust_tz) { | 492 | if (adjust_tz) { |
492 | fattr->cf_ctime.tv_sec += cifs_sb->tcon->ses->server->timeAdj; | 493 | fattr->cf_ctime.tv_sec += cifs_sb_tcon(cifs_sb)->ses->server->timeAdj; |
493 | fattr->cf_mtime.tv_sec += cifs_sb->tcon->ses->server->timeAdj; | 494 | fattr->cf_mtime.tv_sec += cifs_sb_tcon(cifs_sb)->ses->server->timeAdj; |
494 | } | 495 | } |
495 | 496 | ||
496 | fattr->cf_eof = le64_to_cpu(info->EndOfFile); | 497 | fattr->cf_eof = le64_to_cpu(info->EndOfFile); |
@@ -566,7 +567,7 @@ int cifs_get_inode_info(struct inode **pinode, | |||
566 | bool adjustTZ = false; | 567 | bool adjustTZ = false; |
567 | struct cifs_fattr fattr; | 568 | struct cifs_fattr fattr; |
568 | 569 | ||
569 | pTcon = cifs_sb->tcon; | 570 | pTcon = cifs_sb_tcon(cifs_sb); |
570 | cFYI(1, "Getting info on %s", full_path); | 571 | cFYI(1, "Getting info on %s", full_path); |
571 | 572 | ||
572 | if ((pfindData == NULL) && (*pinode != NULL)) { | 573 | if ((pfindData == NULL) && (*pinode != NULL)) { |
@@ -706,8 +707,8 @@ char *cifs_build_path_to_root(struct cifs_sb_info *cifs_sb) | |||
706 | return full_path; | 707 | return full_path; |
707 | } | 708 | } |
708 | 709 | ||
709 | if (cifs_sb->tcon && (cifs_sb->tcon->Flags & SMB_SHARE_IS_IN_DFS)) | 710 | if (cifs_sb_tcon(cifs_sb) && (cifs_sb_tcon(cifs_sb)->Flags & SMB_SHARE_IS_IN_DFS)) |
710 | dfsplen = strnlen(cifs_sb->tcon->treeName, MAX_TREE_SIZE + 1); | 711 | dfsplen = strnlen(cifs_sb_tcon(cifs_sb)->treeName, MAX_TREE_SIZE + 1); |
711 | else | 712 | else |
712 | dfsplen = 0; | 713 | dfsplen = 0; |
713 | 714 | ||
@@ -716,7 +717,7 @@ char *cifs_build_path_to_root(struct cifs_sb_info *cifs_sb) | |||
716 | return full_path; | 717 | return full_path; |
717 | 718 | ||
718 | if (dfsplen) { | 719 | if (dfsplen) { |
719 | strncpy(full_path, cifs_sb->tcon->treeName, dfsplen); | 720 | strncpy(full_path, cifs_sb_tcon(cifs_sb)->treeName, dfsplen); |
720 | /* switch slash direction in prepath depending on whether | 721 | /* switch slash direction in prepath depending on whether |
721 | * windows or posix style path names | 722 | * windows or posix style path names |
722 | */ | 723 | */ |
@@ -841,7 +842,7 @@ struct inode *cifs_root_iget(struct super_block *sb, unsigned long ino) | |||
841 | return ERR_PTR(-ENOMEM); | 842 | return ERR_PTR(-ENOMEM); |
842 | 843 | ||
843 | xid = GetXid(); | 844 | xid = GetXid(); |
844 | if (cifs_sb->tcon->unix_ext) | 845 | if (cifs_sb_tcon(cifs_sb)->unix_ext) |
845 | rc = cifs_get_inode_info_unix(&inode, full_path, sb, xid); | 846 | rc = cifs_get_inode_info_unix(&inode, full_path, sb, xid); |
846 | else | 847 | else |
847 | rc = cifs_get_inode_info(&inode, full_path, NULL, sb, | 848 | 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) | |||
852 | 853 | ||
853 | #ifdef CONFIG_CIFS_FSCACHE | 854 | #ifdef CONFIG_CIFS_FSCACHE |
854 | /* populate tcon->resource_id */ | 855 | /* populate tcon->resource_id */ |
855 | cifs_sb->tcon->resource_id = CIFS_I(inode)->uniqueid; | 856 | cifs_sb_tcon(cifs_sb)->resource_id = CIFS_I(inode)->uniqueid; |
856 | #endif | 857 | #endif |
857 | 858 | ||
858 | if (rc && cifs_sb->tcon->ipc) { | 859 | if (rc && cifs_sb_tcon(cifs_sb)->ipc) { |
859 | cFYI(1, "ipc connection - fake read inode"); | 860 | cFYI(1, "ipc connection - fake read inode"); |
860 | inode->i_mode |= S_IFDIR; | 861 | inode->i_mode |= S_IFDIR; |
861 | inode->i_nlink = 2; | 862 | inode->i_nlink = 2; |
@@ -938,7 +939,7 @@ cifs_set_file_info(struct inode *inode, struct iattr *attrs, int xid, | |||
938 | goto set_via_filehandle; | 939 | goto set_via_filehandle; |
939 | } | 940 | } |
940 | 941 | ||
941 | pTcon = cifs_sb->tcon; | 942 | pTcon = cifs_sb_tcon(cifs_sb); |
942 | 943 | ||
943 | /* | 944 | /* |
944 | * NT4 apparently returns success on this call, but it doesn't | 945 | * 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) | |||
1000 | struct inode *inode = dentry->d_inode; | 1001 | struct inode *inode = dentry->d_inode; |
1001 | struct cifsInodeInfo *cifsInode = CIFS_I(inode); | 1002 | struct cifsInodeInfo *cifsInode = CIFS_I(inode); |
1002 | struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); | 1003 | struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); |
1003 | struct cifsTconInfo *tcon = cifs_sb->tcon; | 1004 | struct cifsTconInfo *tcon = cifs_sb_tcon(cifs_sb); |
1004 | __u32 dosattr, origattr; | 1005 | __u32 dosattr, origattr; |
1005 | FILE_BASIC_INFO *info_buf = NULL; | 1006 | FILE_BASIC_INFO *info_buf = NULL; |
1006 | 1007 | ||
@@ -1111,7 +1112,7 @@ int cifs_unlink(struct inode *dir, struct dentry *dentry) | |||
1111 | struct cifsInodeInfo *cifs_inode; | 1112 | struct cifsInodeInfo *cifs_inode; |
1112 | struct super_block *sb = dir->i_sb; | 1113 | struct super_block *sb = dir->i_sb; |
1113 | struct cifs_sb_info *cifs_sb = CIFS_SB(sb); | 1114 | struct cifs_sb_info *cifs_sb = CIFS_SB(sb); |
1114 | struct cifsTconInfo *tcon = cifs_sb->tcon; | 1115 | struct cifsTconInfo *tcon = cifs_sb_tcon(cifs_sb); |
1115 | struct iattr *attrs = NULL; | 1116 | struct iattr *attrs = NULL; |
1116 | __u32 dosattr = 0, origattr = 0; | 1117 | __u32 dosattr = 0, origattr = 0; |
1117 | 1118 | ||
@@ -1213,7 +1214,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode) | |||
1213 | xid = GetXid(); | 1214 | xid = GetXid(); |
1214 | 1215 | ||
1215 | cifs_sb = CIFS_SB(inode->i_sb); | 1216 | cifs_sb = CIFS_SB(inode->i_sb); |
1216 | pTcon = cifs_sb->tcon; | 1217 | pTcon = cifs_sb_tcon(cifs_sb); |
1217 | 1218 | ||
1218 | full_path = build_path_from_dentry(direntry); | 1219 | full_path = build_path_from_dentry(direntry); |
1219 | if (full_path == NULL) { | 1220 | if (full_path == NULL) { |
@@ -1394,7 +1395,7 @@ int cifs_rmdir(struct inode *inode, struct dentry *direntry) | |||
1394 | xid = GetXid(); | 1395 | xid = GetXid(); |
1395 | 1396 | ||
1396 | cifs_sb = CIFS_SB(inode->i_sb); | 1397 | cifs_sb = CIFS_SB(inode->i_sb); |
1397 | pTcon = cifs_sb->tcon; | 1398 | pTcon = cifs_sb_tcon(cifs_sb); |
1398 | 1399 | ||
1399 | full_path = build_path_from_dentry(direntry); | 1400 | full_path = build_path_from_dentry(direntry); |
1400 | if (full_path == NULL) { | 1401 | if (full_path == NULL) { |
@@ -1435,7 +1436,7 @@ cifs_do_rename(int xid, struct dentry *from_dentry, const char *fromPath, | |||
1435 | struct dentry *to_dentry, const char *toPath) | 1436 | struct dentry *to_dentry, const char *toPath) |
1436 | { | 1437 | { |
1437 | struct cifs_sb_info *cifs_sb = CIFS_SB(from_dentry->d_sb); | 1438 | struct cifs_sb_info *cifs_sb = CIFS_SB(from_dentry->d_sb); |
1438 | struct cifsTconInfo *pTcon = cifs_sb->tcon; | 1439 | struct cifsTconInfo *pTcon = cifs_sb_tcon(cifs_sb); |
1439 | __u16 srcfid; | 1440 | __u16 srcfid; |
1440 | int oplock, rc; | 1441 | int oplock, rc; |
1441 | 1442 | ||
@@ -1486,7 +1487,7 @@ int cifs_rename(struct inode *source_dir, struct dentry *source_dentry, | |||
1486 | int xid, rc, tmprc; | 1487 | int xid, rc, tmprc; |
1487 | 1488 | ||
1488 | cifs_sb = CIFS_SB(source_dir->i_sb); | 1489 | cifs_sb = CIFS_SB(source_dir->i_sb); |
1489 | tcon = cifs_sb->tcon; | 1490 | tcon = cifs_sb_tcon(cifs_sb); |
1490 | 1491 | ||
1491 | xid = GetXid(); | 1492 | xid = GetXid(); |
1492 | 1493 | ||
@@ -1660,7 +1661,7 @@ int cifs_revalidate_dentry(struct dentry *dentry) | |||
1660 | "jiffies %ld", full_path, inode, inode->i_count.counter, | 1661 | "jiffies %ld", full_path, inode, inode->i_count.counter, |
1661 | dentry, dentry->d_time, jiffies); | 1662 | dentry, dentry->d_time, jiffies); |
1662 | 1663 | ||
1663 | if (CIFS_SB(sb)->tcon->unix_ext) | 1664 | if (cifs_sb_tcon(CIFS_SB(sb))->unix_ext) |
1664 | rc = cifs_get_inode_info_unix(&inode, full_path, sb, xid); | 1665 | rc = cifs_get_inode_info_unix(&inode, full_path, sb, xid); |
1665 | else | 1666 | else |
1666 | rc = cifs_get_inode_info(&inode, full_path, NULL, sb, | 1667 | rc = cifs_get_inode_info(&inode, full_path, NULL, sb, |
@@ -1755,7 +1756,7 @@ cifs_set_file_size(struct inode *inode, struct iattr *attrs, | |||
1755 | 1756 | ||
1756 | if (rc != 0) { | 1757 | if (rc != 0) { |
1757 | if (pTcon == NULL) | 1758 | if (pTcon == NULL) |
1758 | pTcon = cifs_sb->tcon; | 1759 | pTcon = cifs_sb_tcon(cifs_sb); |
1759 | 1760 | ||
1760 | /* Set file size by pathname rather than by handle | 1761 | /* Set file size by pathname rather than by handle |
1761 | either because no valid, writeable file handle for | 1762 | either because no valid, writeable file handle for |
@@ -1901,7 +1902,7 @@ cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs) | |||
1901 | rc = CIFSSMBUnixSetFileInfo(xid, pTcon, args, nfid, npid); | 1902 | rc = CIFSSMBUnixSetFileInfo(xid, pTcon, args, nfid, npid); |
1902 | cifsFileInfo_put(open_file); | 1903 | cifsFileInfo_put(open_file); |
1903 | } else { | 1904 | } else { |
1904 | pTcon = cifs_sb->tcon; | 1905 | pTcon = cifs_sb_tcon(cifs_sb); |
1905 | rc = CIFSSMBUnixSetPathInfo(xid, pTcon, full_path, args, | 1906 | rc = CIFSSMBUnixSetPathInfo(xid, pTcon, full_path, args, |
1906 | cifs_sb->local_nls, | 1907 | cifs_sb->local_nls, |
1907 | cifs_sb->mnt_cifs_flags & | 1908 | cifs_sb->mnt_cifs_flags & |
@@ -2086,7 +2087,7 @@ cifs_setattr(struct dentry *direntry, struct iattr *attrs) | |||
2086 | { | 2087 | { |
2087 | struct inode *inode = direntry->d_inode; | 2088 | struct inode *inode = direntry->d_inode; |
2088 | struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); | 2089 | struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); |
2089 | struct cifsTconInfo *pTcon = cifs_sb->tcon; | 2090 | struct cifsTconInfo *pTcon = cifs_sb_tcon(cifs_sb); |
2090 | 2091 | ||
2091 | if (pTcon->unix_ext) | 2092 | if (pTcon->unix_ext) |
2092 | return cifs_setattr_unix(direntry, attrs); | 2093 | return cifs_setattr_unix(direntry, attrs); |
diff --git a/fs/cifs/link.c b/fs/cifs/link.c index cbf7b112287b..66db2d61fa43 100644 --- a/fs/cifs/link.c +++ b/fs/cifs/link.c | |||
@@ -249,7 +249,7 @@ CIFSCheckMFSymlink(struct cifs_fattr *fattr, | |||
249 | int rc; | 249 | int rc; |
250 | int oplock = 0; | 250 | int oplock = 0; |
251 | __u16 netfid = 0; | 251 | __u16 netfid = 0; |
252 | struct cifsTconInfo *pTcon = cifs_sb->tcon; | 252 | struct cifsTconInfo *pTcon = cifs_sb_tcon(cifs_sb); |
253 | u8 *buf; | 253 | u8 *buf; |
254 | char *pbuf; | 254 | char *pbuf; |
255 | unsigned int bytes_read = 0; | 255 | unsigned int bytes_read = 0; |
@@ -321,7 +321,7 @@ cifs_hardlink(struct dentry *old_file, struct inode *inode, | |||
321 | xid = GetXid(); | 321 | xid = GetXid(); |
322 | 322 | ||
323 | cifs_sb_target = CIFS_SB(inode->i_sb); | 323 | cifs_sb_target = CIFS_SB(inode->i_sb); |
324 | pTcon = cifs_sb_target->tcon; | 324 | pTcon = cifs_sb_tcon(cifs_sb_target); |
325 | 325 | ||
326 | /* No need to check for cross device links since server will do that | 326 | /* No need to check for cross device links since server will do that |
327 | BB note DFS case in future though (when we may have to check) */ | 327 | BB note DFS case in future though (when we may have to check) */ |
@@ -390,7 +390,7 @@ cifs_follow_link(struct dentry *direntry, struct nameidata *nd) | |||
390 | char *full_path = NULL; | 390 | char *full_path = NULL; |
391 | char *target_path = NULL; | 391 | char *target_path = NULL; |
392 | struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); | 392 | struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); |
393 | struct cifsTconInfo *tcon = cifs_sb->tcon; | 393 | struct cifsTconInfo *tcon = cifs_sb_tcon(cifs_sb); |
394 | 394 | ||
395 | xid = GetXid(); | 395 | xid = GetXid(); |
396 | 396 | ||
@@ -459,7 +459,7 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname) | |||
459 | xid = GetXid(); | 459 | xid = GetXid(); |
460 | 460 | ||
461 | cifs_sb = CIFS_SB(inode->i_sb); | 461 | cifs_sb = CIFS_SB(inode->i_sb); |
462 | pTcon = cifs_sb->tcon; | 462 | pTcon = cifs_sb_tcon(cifs_sb); |
463 | 463 | ||
464 | full_path = build_path_from_dentry(direntry); | 464 | full_path = build_path_from_dentry(direntry); |
465 | 465 | ||
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index 3ccadc1326d6..c5cbfdb2a58b 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c | |||
@@ -729,6 +729,6 @@ cifs_autodisable_serverino(struct cifs_sb_info *cifs_sb) | |||
729 | "properly. Hardlinks will not be recognized on this " | 729 | "properly. Hardlinks will not be recognized on this " |
730 | "mount. Consider mounting with the \"noserverino\" " | 730 | "mount. Consider mounting with the \"noserverino\" " |
731 | "option to silence this message.", | 731 | "option to silence this message.", |
732 | cifs_sb->tcon->treeName); | 732 | cifs_sb_tcon(cifs_sb)->treeName); |
733 | } | 733 | } |
734 | } | 734 | } |
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c index d7784a95134f..3efc2424964f 100644 --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c | |||
@@ -102,7 +102,7 @@ cifs_readdir_lookup(struct dentry *parent, struct qstr *name, | |||
102 | return NULL; | 102 | return NULL; |
103 | } | 103 | } |
104 | 104 | ||
105 | if (CIFS_SB(sb)->tcon->nocase) | 105 | if (cifs_sb_tcon(CIFS_SB(sb))->nocase) |
106 | dentry->d_op = &cifs_ci_dentry_ops; | 106 | dentry->d_op = &cifs_ci_dentry_ops; |
107 | else | 107 | else |
108 | dentry->d_op = &cifs_dentry_ops; | 108 | dentry->d_op = &cifs_dentry_ops; |
@@ -171,7 +171,7 @@ static void | |||
171 | cifs_std_info_to_fattr(struct cifs_fattr *fattr, FIND_FILE_STANDARD_INFO *info, | 171 | cifs_std_info_to_fattr(struct cifs_fattr *fattr, FIND_FILE_STANDARD_INFO *info, |
172 | struct cifs_sb_info *cifs_sb) | 172 | struct cifs_sb_info *cifs_sb) |
173 | { | 173 | { |
174 | int offset = cifs_sb->tcon->ses->server->timeAdj; | 174 | int offset = cifs_sb_tcon(cifs_sb)->ses->server->timeAdj; |
175 | 175 | ||
176 | memset(fattr, 0, sizeof(*fattr)); | 176 | memset(fattr, 0, sizeof(*fattr)); |
177 | fattr->cf_atime = cnvrtDosUnixTm(info->LastAccessDate, | 177 | fattr->cf_atime = cnvrtDosUnixTm(info->LastAccessDate, |
@@ -199,7 +199,7 @@ int get_symlink_reparse_path(char *full_path, struct cifs_sb_info *cifs_sb, | |||
199 | int len; | 199 | int len; |
200 | int oplock = 0; | 200 | int oplock = 0; |
201 | int rc; | 201 | int rc; |
202 | struct cifsTconInfo *ptcon = cifs_sb->tcon; | 202 | struct cifsTconInfo *ptcon = cifs_sb_tcon(cifs_sb); |
203 | char *tmpbuffer; | 203 | char *tmpbuffer; |
204 | 204 | ||
205 | rc = CIFSSMBOpen(xid, ptcon, full_path, FILE_OPEN, GENERIC_READ, | 205 | rc = CIFSSMBOpen(xid, ptcon, full_path, FILE_OPEN, GENERIC_READ, |
@@ -241,7 +241,7 @@ static int initiate_cifs_search(const int xid, struct file *file) | |||
241 | cifsFile = file->private_data; | 241 | cifsFile = file->private_data; |
242 | cifsFile->invalidHandle = true; | 242 | cifsFile->invalidHandle = true; |
243 | cifsFile->srch_inf.endOfSearch = false; | 243 | cifsFile->srch_inf.endOfSearch = false; |
244 | cifsFile->tcon = cifs_sb->tcon; | 244 | cifsFile->tcon = cifs_sb_tcon(cifs_sb); |
245 | pTcon = cifsFile->tcon; | 245 | pTcon = cifsFile->tcon; |
246 | if (pTcon == NULL) | 246 | if (pTcon == NULL) |
247 | return -EINVAL; | 247 | return -EINVAL; |
diff --git a/fs/cifs/xattr.c b/fs/cifs/xattr.c index a1509207bfa6..41f95bf67977 100644 --- a/fs/cifs/xattr.c +++ b/fs/cifs/xattr.c | |||
@@ -61,7 +61,7 @@ int cifs_removexattr(struct dentry *direntry, const char *ea_name) | |||
61 | xid = GetXid(); | 61 | xid = GetXid(); |
62 | 62 | ||
63 | cifs_sb = CIFS_SB(sb); | 63 | cifs_sb = CIFS_SB(sb); |
64 | pTcon = cifs_sb->tcon; | 64 | pTcon = cifs_sb_tcon(cifs_sb); |
65 | 65 | ||
66 | full_path = build_path_from_dentry(direntry); | 66 | full_path = build_path_from_dentry(direntry); |
67 | if (full_path == NULL) { | 67 | if (full_path == NULL) { |
@@ -116,7 +116,7 @@ int cifs_setxattr(struct dentry *direntry, const char *ea_name, | |||
116 | xid = GetXid(); | 116 | xid = GetXid(); |
117 | 117 | ||
118 | cifs_sb = CIFS_SB(sb); | 118 | cifs_sb = CIFS_SB(sb); |
119 | pTcon = cifs_sb->tcon; | 119 | pTcon = cifs_sb_tcon(cifs_sb); |
120 | 120 | ||
121 | full_path = build_path_from_dentry(direntry); | 121 | full_path = build_path_from_dentry(direntry); |
122 | if (full_path == NULL) { | 122 | if (full_path == NULL) { |
@@ -224,7 +224,7 @@ ssize_t cifs_getxattr(struct dentry *direntry, const char *ea_name, | |||
224 | xid = GetXid(); | 224 | xid = GetXid(); |
225 | 225 | ||
226 | cifs_sb = CIFS_SB(sb); | 226 | cifs_sb = CIFS_SB(sb); |
227 | pTcon = cifs_sb->tcon; | 227 | pTcon = cifs_sb_tcon(cifs_sb); |
228 | 228 | ||
229 | full_path = build_path_from_dentry(direntry); | 229 | full_path = build_path_from_dentry(direntry); |
230 | if (full_path == NULL) { | 230 | if (full_path == NULL) { |
@@ -346,7 +346,7 @@ ssize_t cifs_listxattr(struct dentry *direntry, char *data, size_t buf_size) | |||
346 | return -EIO; | 346 | return -EIO; |
347 | 347 | ||
348 | cifs_sb = CIFS_SB(sb); | 348 | cifs_sb = CIFS_SB(sb); |
349 | pTcon = cifs_sb->tcon; | 349 | pTcon = cifs_sb_tcon(cifs_sb); |
350 | 350 | ||
351 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR) | 351 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR) |
352 | return -EOPNOTSUPP; | 352 | return -EOPNOTSUPP; |