merged into cifs-2.6.git for-next pending more testing added cc:stable On Mon, Oct 30, 2023 at 6:00 AM <nspmangalore@xxxxxxxxx> wrote: > > From: Shyam Prasad N <sprasad@xxxxxxxxxxxxx> > > Today, we have no way to access the cifs_sb when we > just have pointers to struct tcon. This is very > limiting as many functions deal with cifs_sb, and > these calls do not directly originate from VFS. > > This change introduces a new cifs_sb field in cifs_tcon > that points to the cifs_sb for the tcon. The assumption > here is that a tcon will always map to this cifs_sb and > will never change. > > Also, refcounting should not be necessary, since cifs_sb > will never be freed before tcon. > > Signed-off-by: Shyam Prasad N <sprasad@xxxxxxxxxxxxx> > --- > fs/smb/client/cifsglob.h | 1 + > fs/smb/client/connect.c | 2 ++ > 2 files changed, 3 insertions(+) > > diff --git a/fs/smb/client/cifsglob.h b/fs/smb/client/cifsglob.h > index 81e7a45f413d..cdbc2cd207dc 100644 > --- a/fs/smb/client/cifsglob.h > +++ b/fs/smb/client/cifsglob.h > @@ -1134,6 +1134,7 @@ struct cifs_tcon { > int tc_count; > struct list_head rlist; /* reconnect list */ > spinlock_t tc_lock; /* protect anything here that is not protected */ > + struct cifs_sb_info *cifs_sb; /* back pointer to cifs super block */ > atomic_t num_local_opens; /* num of all opens including disconnected */ > atomic_t num_remote_opens; /* num of all network opens on server */ > struct list_head openFileList; > diff --git a/fs/smb/client/connect.c b/fs/smb/client/connect.c > index 8393977e21ee..184075da5c6e 100644 > --- a/fs/smb/client/connect.c > +++ b/fs/smb/client/connect.c > @@ -3355,6 +3355,7 @@ int cifs_mount_get_tcon(struct cifs_mount_ctx *mnt_ctx) > tcon = NULL; > goto out; > } > + tcon->cifs_sb = cifs_sb; > > /* if new SMB3.11 POSIX extensions are supported do not remap / and \ */ > if (tcon->posix_extensions) > @@ -3986,6 +3987,7 @@ cifs_construct_tcon(struct cifs_sb_info *cifs_sb, kuid_t fsuid) > cifs_put_smb_ses(ses); > goto out; > } > + tcon->cifs_sb = cifs_sb; > > #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY > if (cap_unix(ses)) > -- > 2.34.1 > -- Thanks, Steve