diff options
-rw-r--r-- | fs/ncpfs/inode.c | 19 | ||||
-rw-r--r-- | fs/ncpfs/ioctl.c | 20 | ||||
-rw-r--r-- | include/linux/ncp_fs.h | 28 |
3 files changed, 13 insertions, 54 deletions
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index 8c8839203cd5..d277a58bd128 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c | |||
@@ -716,10 +716,8 @@ static void ncp_put_super(struct super_block *sb) | |||
716 | fput(server->ncp_filp); | 716 | fput(server->ncp_filp); |
717 | kill_proc(server->m.wdog_pid, SIGTERM, 1); | 717 | kill_proc(server->m.wdog_pid, SIGTERM, 1); |
718 | 718 | ||
719 | if (server->priv.data) | 719 | kfree(server->priv.data); |
720 | ncp_kfree_s(server->priv.data, server->priv.len); | 720 | kfree(server->auth.object_name); |
721 | if (server->auth.object_name) | ||
722 | ncp_kfree_s(server->auth.object_name, server->auth.object_name_len); | ||
723 | vfree(server->packet); | 721 | vfree(server->packet); |
724 | sb->s_fs_info = NULL; | 722 | sb->s_fs_info = NULL; |
725 | kfree(server); | 723 | kfree(server); |
@@ -958,11 +956,6 @@ out: | |||
958 | return result; | 956 | return result; |
959 | } | 957 | } |
960 | 958 | ||
961 | #ifdef DEBUG_NCP_MALLOC | ||
962 | int ncp_malloced; | ||
963 | int ncp_current_malloced; | ||
964 | #endif | ||
965 | |||
966 | static struct super_block *ncp_get_sb(struct file_system_type *fs_type, | 959 | static struct super_block *ncp_get_sb(struct file_system_type *fs_type, |
967 | int flags, const char *dev_name, void *data) | 960 | int flags, const char *dev_name, void *data) |
968 | { | 961 | { |
@@ -981,10 +974,6 @@ static int __init init_ncp_fs(void) | |||
981 | int err; | 974 | int err; |
982 | DPRINTK("ncpfs: init_module called\n"); | 975 | DPRINTK("ncpfs: init_module called\n"); |
983 | 976 | ||
984 | #ifdef DEBUG_NCP_MALLOC | ||
985 | ncp_malloced = 0; | ||
986 | ncp_current_malloced = 0; | ||
987 | #endif | ||
988 | err = init_inodecache(); | 977 | err = init_inodecache(); |
989 | if (err) | 978 | if (err) |
990 | goto out1; | 979 | goto out1; |
@@ -1003,10 +992,6 @@ static void __exit exit_ncp_fs(void) | |||
1003 | DPRINTK("ncpfs: cleanup_module called\n"); | 992 | DPRINTK("ncpfs: cleanup_module called\n"); |
1004 | unregister_filesystem(&ncp_fs_type); | 993 | unregister_filesystem(&ncp_fs_type); |
1005 | destroy_inodecache(); | 994 | destroy_inodecache(); |
1006 | #ifdef DEBUG_NCP_MALLOC | ||
1007 | PRINTK("ncp_malloced: %d\n", ncp_malloced); | ||
1008 | PRINTK("ncp_current_malloced: %d\n", ncp_current_malloced); | ||
1009 | #endif | ||
1010 | } | 995 | } |
1011 | 996 | ||
1012 | module_init(init_ncp_fs) | 997 | module_init(init_ncp_fs) |
diff --git a/fs/ncpfs/ioctl.c b/fs/ncpfs/ioctl.c index d6e0c089e1b1..eb3813ad136f 100644 --- a/fs/ncpfs/ioctl.c +++ b/fs/ncpfs/ioctl.c | |||
@@ -518,10 +518,11 @@ outrel: | |||
518 | if (user.object_name_len > NCP_OBJECT_NAME_MAX_LEN) | 518 | if (user.object_name_len > NCP_OBJECT_NAME_MAX_LEN) |
519 | return -ENOMEM; | 519 | return -ENOMEM; |
520 | if (user.object_name_len) { | 520 | if (user.object_name_len) { |
521 | newname = ncp_kmalloc(user.object_name_len, GFP_USER); | 521 | newname = kmalloc(user.object_name_len, GFP_USER); |
522 | if (!newname) return -ENOMEM; | 522 | if (!newname) |
523 | return -ENOMEM; | ||
523 | if (copy_from_user(newname, user.object_name, user.object_name_len)) { | 524 | if (copy_from_user(newname, user.object_name, user.object_name_len)) { |
524 | ncp_kfree_s(newname, user.object_name_len); | 525 | kfree(newname); |
525 | return -EFAULT; | 526 | return -EFAULT; |
526 | } | 527 | } |
527 | } else { | 528 | } else { |
@@ -540,8 +541,8 @@ outrel: | |||
540 | server->priv.len = 0; | 541 | server->priv.len = 0; |
541 | server->priv.data = NULL; | 542 | server->priv.data = NULL; |
542 | /* leave critical section */ | 543 | /* leave critical section */ |
543 | if (oldprivate) ncp_kfree_s(oldprivate, oldprivatelen); | 544 | kfree(oldprivate); |
544 | if (oldname) ncp_kfree_s(oldname, oldnamelen); | 545 | kfree(oldname); |
545 | return 0; | 546 | return 0; |
546 | } | 547 | } |
547 | case NCP_IOC_GETPRIVATEDATA: | 548 | case NCP_IOC_GETPRIVATEDATA: |
@@ -581,10 +582,11 @@ outrel: | |||
581 | if (user.len > NCP_PRIVATE_DATA_MAX_LEN) | 582 | if (user.len > NCP_PRIVATE_DATA_MAX_LEN) |
582 | return -ENOMEM; | 583 | return -ENOMEM; |
583 | if (user.len) { | 584 | if (user.len) { |
584 | new = ncp_kmalloc(user.len, GFP_USER); | 585 | new = kmalloc(user.len, GFP_USER); |
585 | if (!new) return -ENOMEM; | 586 | if (!new) |
587 | return -ENOMEM; | ||
586 | if (copy_from_user(new, user.data, user.len)) { | 588 | if (copy_from_user(new, user.data, user.len)) { |
587 | ncp_kfree_s(new, user.len); | 589 | kfree(new); |
588 | return -EFAULT; | 590 | return -EFAULT; |
589 | } | 591 | } |
590 | } else { | 592 | } else { |
@@ -596,7 +598,7 @@ outrel: | |||
596 | server->priv.len = user.len; | 598 | server->priv.len = user.len; |
597 | server->priv.data = new; | 599 | server->priv.data = new; |
598 | /* leave critical section */ | 600 | /* leave critical section */ |
599 | if (old) ncp_kfree_s(old, oldlen); | 601 | kfree(old); |
600 | return 0; | 602 | return 0; |
601 | } | 603 | } |
602 | 604 | ||
diff --git a/include/linux/ncp_fs.h b/include/linux/ncp_fs.h index 7297e4372c0f..e01342568530 100644 --- a/include/linux/ncp_fs.h +++ b/include/linux/ncp_fs.h | |||
@@ -201,34 +201,6 @@ static inline struct ncp_inode_info *NCP_FINFO(struct inode *inode) | |||
201 | return container_of(inode, struct ncp_inode_info, vfs_inode); | 201 | return container_of(inode, struct ncp_inode_info, vfs_inode); |
202 | } | 202 | } |
203 | 203 | ||
204 | #ifdef DEBUG_NCP_MALLOC | ||
205 | |||
206 | #include <linux/slab.h> | ||
207 | |||
208 | extern int ncp_malloced; | ||
209 | extern int ncp_current_malloced; | ||
210 | |||
211 | static inline void * | ||
212 | ncp_kmalloc(unsigned int size, int priority) | ||
213 | { | ||
214 | ncp_malloced += 1; | ||
215 | ncp_current_malloced += 1; | ||
216 | return kmalloc(size, priority); | ||
217 | } | ||
218 | |||
219 | static inline void ncp_kfree_s(void *obj, int size) | ||
220 | { | ||
221 | ncp_current_malloced -= 1; | ||
222 | kfree(obj); | ||
223 | } | ||
224 | |||
225 | #else /* DEBUG_NCP_MALLOC */ | ||
226 | |||
227 | #define ncp_kmalloc(s,p) kmalloc(s,p) | ||
228 | #define ncp_kfree_s(o,s) kfree(o) | ||
229 | |||
230 | #endif /* DEBUG_NCP_MALLOC */ | ||
231 | |||
232 | /* linux/fs/ncpfs/inode.c */ | 204 | /* linux/fs/ncpfs/inode.c */ |
233 | int ncp_notify_change(struct dentry *, struct iattr *); | 205 | int ncp_notify_change(struct dentry *, struct iattr *); |
234 | struct inode *ncp_iget(struct super_block *, struct ncp_entry_info *); | 206 | struct inode *ncp_iget(struct super_block *, struct ncp_entry_info *); |