Loading fs/cifs/cifs_fs_sb.h +1 −0 Original line number Diff line number Diff line Loading @@ -65,5 +65,6 @@ struct cifs_sb_info { char *mountdata; /* options received at mount time or via DFS refs */ struct backing_dev_info bdi; struct delayed_work prune_tlinks; struct rcu_head rcu; }; #endif /* _CIFS_FS_SB_H */ fs/cifs/connect.c +8 −2 Original line number Diff line number Diff line Loading @@ -3755,6 +3755,13 @@ CIFSTCon(const unsigned int xid, struct cifs_ses *ses, return rc; } static void delayed_free(struct rcu_head *p) { struct cifs_sb_info *sbi = container_of(p, struct cifs_sb_info, rcu); unload_nls(sbi->local_nls); kfree(sbi); } void cifs_umount(struct cifs_sb_info *cifs_sb) { Loading @@ -3779,8 +3786,7 @@ cifs_umount(struct cifs_sb_info *cifs_sb) bdi_destroy(&cifs_sb->bdi); kfree(cifs_sb->mountdata); unload_nls(cifs_sb->local_nls); kfree(cifs_sb); call_rcu(&cifs_sb->rcu, delayed_free); } int Loading Loading
fs/cifs/cifs_fs_sb.h +1 −0 Original line number Diff line number Diff line Loading @@ -65,5 +65,6 @@ struct cifs_sb_info { char *mountdata; /* options received at mount time or via DFS refs */ struct backing_dev_info bdi; struct delayed_work prune_tlinks; struct rcu_head rcu; }; #endif /* _CIFS_FS_SB_H */
fs/cifs/connect.c +8 −2 Original line number Diff line number Diff line Loading @@ -3755,6 +3755,13 @@ CIFSTCon(const unsigned int xid, struct cifs_ses *ses, return rc; } static void delayed_free(struct rcu_head *p) { struct cifs_sb_info *sbi = container_of(p, struct cifs_sb_info, rcu); unload_nls(sbi->local_nls); kfree(sbi); } void cifs_umount(struct cifs_sb_info *cifs_sb) { Loading @@ -3779,8 +3786,7 @@ cifs_umount(struct cifs_sb_info *cifs_sb) bdi_destroy(&cifs_sb->bdi); kfree(cifs_sb->mountdata); unload_nls(cifs_sb->local_nls); kfree(cifs_sb); call_rcu(&cifs_sb->rcu, delayed_free); } int Loading