- leak of root inode if d_alloc_root() fails.
struct object_info root_obj;
unsigned char *b_data;
struct adfs_sb_info *asb;
+ struct inode *root;
asb = kmalloc(sizeof(*asb), GFP_KERNEL);
if (!asb)
asb->s_namelen = ADFS_F_NAME_LEN;
}
- sb->s_root = d_alloc_root(adfs_iget(sb, &root_obj));
+ root = adfs_iget(sb, &root_obj);
+ sb->s_root = d_alloc_root(root);
if (!sb->s_root) {
int i;
-
+ iput(root);
for (i = 0; i < asb->s_map_size; i++)
brelse(asb->s_map[i].dm_bh);
kfree(asb->s_map);