--- ./fs/devpts/inode.c.dpts 2004-04-08 08:38:17.000000000 +0400 +++ ./fs/devpts/inode.c 2004-04-08 08:41:56.000000000 +0400 @@ -143,12 +143,12 @@ struct super_block *devpts_read_super(st if ( devpts_parse_options(data,sbi) && !silent) { printk("devpts: called with bogus options\n"); - goto fail_free; + goto fail_inode; } inode = new_inode(s); if (!inode) - goto fail_free; + goto fail_inode; inode->i_ino = 1; inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; inode->i_blocks = 0; @@ -170,6 +170,8 @@ struct super_block *devpts_read_super(st printk("devpts: get root dentry failed\n"); iput(inode); +fail_inode: + kfree(sbi->inodes); fail_free: kfree(sbi); fail: