Messages in this thread | | | Subject | Re: C++ pushback | From | Xavier Bestel <> | Date | Tue, 25 Apr 2006 10:15:48 +0200 |
| |
On Tue, 2006-04-25 at 00:16, J.A. Magallon wrote:
> Tell me what is the difference between: > > > sbi = kmalloc(sizeof(*sbi), GFP_KERNEL); > if (!sbi) > return -ENOMEM; > sb->s_fs_info = sbi; > memset(sbi, 0, sizeof(*sbi)); > sbi->s_mount_opt = 0; > sbi->s_resuid = EXT3_DEF_RESUID; > sbi->s_resgid = EXT3_DEF_RESGID; > > and > > SuperBlock() : s_mount_opt(0), s_resuid(EXT3_DEF_RESUID), s_resgid(EXT3_DEF_RESGID) > {} > > ... > sbi = new SuperBlock; > if (!sbi) > return -ENOMEM;
In the first case you know that exactely *one* kmalloc(GFP_KERNEL) occurs. In the second case you have to browse SuperBlock's constructor to check if it allocates things, needs to run with/without interrupts, PREEMPT, whatever... (not even talking about exceptions).
Xav
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |