提交 11b0b5ab 编写于 作者: O Oliver Neukum 提交者: Linus Torvalds

[PATCH] use kzalloc and kcalloc in core fs code

Signed-off-by: NOliver Neukum <oliver@neukum.name>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 656bde57
...@@ -122,10 +122,9 @@ static int aio_setup_ring(struct kioctx *ctx) ...@@ -122,10 +122,9 @@ static int aio_setup_ring(struct kioctx *ctx)
info->nr = 0; info->nr = 0;
info->ring_pages = info->internal_pages; info->ring_pages = info->internal_pages;
if (nr_pages > AIO_RING_PAGES) { if (nr_pages > AIO_RING_PAGES) {
info->ring_pages = kmalloc(sizeof(struct page *) * nr_pages, GFP_KERNEL); info->ring_pages = kcalloc(nr_pages, sizeof(struct page *), GFP_KERNEL);
if (!info->ring_pages) if (!info->ring_pages)
return -ENOMEM; return -ENOMEM;
memset(info->ring_pages, 0, sizeof(struct page *) * nr_pages);
} }
info->mmap_size = nr_pages * PAGE_SIZE; info->mmap_size = nr_pages * PAGE_SIZE;
......
...@@ -1465,12 +1465,11 @@ static int elf_core_dump(long signr, struct pt_regs * regs, struct file * file) ...@@ -1465,12 +1465,11 @@ static int elf_core_dump(long signr, struct pt_regs * regs, struct file * file)
read_lock(&tasklist_lock); read_lock(&tasklist_lock);
do_each_thread(g,p) do_each_thread(g,p)
if (current->mm == p->mm && current != p) { if (current->mm == p->mm && current != p) {
tmp = kmalloc(sizeof(*tmp), GFP_ATOMIC); tmp = kzalloc(sizeof(*tmp), GFP_ATOMIC);
if (!tmp) { if (!tmp) {
read_unlock(&tasklist_lock); read_unlock(&tasklist_lock);
goto cleanup; goto cleanup;
} }
memset(tmp, 0, sizeof(*tmp));
INIT_LIST_HEAD(&tmp->list); INIT_LIST_HEAD(&tmp->list);
tmp->thread = p; tmp->thread = p;
list_add(&tmp->list, &thread_list); list_add(&tmp->list, &thread_list);
......
...@@ -636,12 +636,10 @@ static struct bio *__bio_map_user_iov(request_queue_t *q, ...@@ -636,12 +636,10 @@ static struct bio *__bio_map_user_iov(request_queue_t *q,
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
ret = -ENOMEM; ret = -ENOMEM;
pages = kmalloc(nr_pages * sizeof(struct page *), GFP_KERNEL); pages = kcalloc(nr_pages, sizeof(struct page *), GFP_KERNEL);
if (!pages) if (!pages)
goto out; goto out;
memset(pages, 0, nr_pages * sizeof(struct page *));
for (i = 0; i < iov_count; i++) { for (i = 0; i < iov_count; i++) {
unsigned long uaddr = (unsigned long)iov[i].iov_base; unsigned long uaddr = (unsigned long)iov[i].iov_base;
unsigned long len = iov[i].iov_len; unsigned long len = iov[i].iov_len;
...@@ -1186,12 +1184,11 @@ void bioset_free(struct bio_set *bs) ...@@ -1186,12 +1184,11 @@ void bioset_free(struct bio_set *bs)
struct bio_set *bioset_create(int bio_pool_size, int bvec_pool_size, int scale) struct bio_set *bioset_create(int bio_pool_size, int bvec_pool_size, int scale)
{ {
struct bio_set *bs = kmalloc(sizeof(*bs), GFP_KERNEL); struct bio_set *bs = kzalloc(sizeof(*bs), GFP_KERNEL);
if (!bs) if (!bs)
return NULL; return NULL;
memset(bs, 0, sizeof(*bs));
bs->bio_pool = mempool_create(bio_pool_size, mempool_alloc_slab, bs->bio_pool = mempool_create(bio_pool_size, mempool_alloc_slab,
mempool_free_slab, bio_slab); mempool_free_slab, bio_slab);
......
...@@ -146,12 +146,10 @@ __register_chrdev_region(unsigned int major, unsigned int baseminor, ...@@ -146,12 +146,10 @@ __register_chrdev_region(unsigned int major, unsigned int baseminor,
int ret = 0; int ret = 0;
int i; int i;
cd = kmalloc(sizeof(struct char_device_struct), GFP_KERNEL); cd = kzalloc(sizeof(struct char_device_struct), GFP_KERNEL);
if (cd == NULL) if (cd == NULL)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
memset(cd, 0, sizeof(struct char_device_struct));
mutex_lock(&chrdevs_lock); mutex_lock(&chrdevs_lock);
/* temporary */ /* temporary */
...@@ -466,9 +464,8 @@ static struct kobj_type ktype_cdev_dynamic = { ...@@ -466,9 +464,8 @@ static struct kobj_type ktype_cdev_dynamic = {
struct cdev *cdev_alloc(void) struct cdev *cdev_alloc(void)
{ {
struct cdev *p = kmalloc(sizeof(struct cdev), GFP_KERNEL); struct cdev *p = kzalloc(sizeof(struct cdev), GFP_KERNEL);
if (p) { if (p) {
memset(p, 0, sizeof(struct cdev));
p->kobj.ktype = &ktype_cdev_dynamic; p->kobj.ktype = &ktype_cdev_dynamic;
INIT_LIST_HEAD(&p->list); INIT_LIST_HEAD(&p->list);
kobject_init(&p->kobj); kobject_init(&p->kobj);
......
...@@ -1476,10 +1476,9 @@ int compat_do_execve(char * filename, ...@@ -1476,10 +1476,9 @@ int compat_do_execve(char * filename,
int i; int i;
retval = -ENOMEM; retval = -ENOMEM;
bprm = kmalloc(sizeof(*bprm), GFP_KERNEL); bprm = kzalloc(sizeof(*bprm), GFP_KERNEL);
if (!bprm) if (!bprm)
goto out_ret; goto out_ret;
memset(bprm, 0, sizeof(*bprm));
file = open_exec(filename); file = open_exec(filename);
retval = PTR_ERR(file); retval = PTR_ERR(file);
......
...@@ -1143,10 +1143,9 @@ int do_execve(char * filename, ...@@ -1143,10 +1143,9 @@ int do_execve(char * filename,
int i; int i;
retval = -ENOMEM; retval = -ENOMEM;
bprm = kmalloc(sizeof(*bprm), GFP_KERNEL); bprm = kzalloc(sizeof(*bprm), GFP_KERNEL);
if (!bprm) if (!bprm)
goto out_ret; goto out_ret;
memset(bprm, 0, sizeof(*bprm));
file = open_exec(filename); file = open_exec(filename);
retval = PTR_ERR(file); retval = PTR_ERR(file);
......
...@@ -662,10 +662,9 @@ struct inode* pipe_new(struct inode* inode) ...@@ -662,10 +662,9 @@ struct inode* pipe_new(struct inode* inode)
{ {
struct pipe_inode_info *info; struct pipe_inode_info *info;
info = kmalloc(sizeof(struct pipe_inode_info), GFP_KERNEL); info = kzalloc(sizeof(struct pipe_inode_info), GFP_KERNEL);
if (!info) if (!info)
goto fail_page; goto fail_page;
memset(info, 0, sizeof(*info));
inode->i_pipe = info; inode->i_pipe = info;
init_waitqueue_head(PIPE_WAIT(*inode)); init_waitqueue_head(PIPE_WAIT(*inode));
......
...@@ -55,11 +55,10 @@ DEFINE_SPINLOCK(sb_lock); ...@@ -55,11 +55,10 @@ DEFINE_SPINLOCK(sb_lock);
*/ */
static struct super_block *alloc_super(void) static struct super_block *alloc_super(void)
{ {
struct super_block *s = kmalloc(sizeof(struct super_block), GFP_USER); struct super_block *s = kzalloc(sizeof(struct super_block), GFP_USER);
static struct super_operations default_op; static struct super_operations default_op;
if (s) { if (s) {
memset(s, 0, sizeof(struct super_block));
if (security_sb_alloc(s)) { if (security_sb_alloc(s)) {
kfree(s); kfree(s);
s = NULL; s = NULL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册