kfree(n1); kfree(n2);
return -ENOMEM;
}
+ doh->new = lafs_get_block(dir, newhash+1, NULL, GFP_KERNEL,
+ MKREF(dir_new));
+ if (doh->new == NULL) {
+ kfree(n1); kfree(n2);
+ return -ENOMEM;
+ }
buf = map_dblock(dirblk);
lafs_dir_split(buf, bits, n1, n2, name, inum, type,
&newhash, seed, hash, chainoffset);
unmap_dblock(dirblk, buf);
- doh->new = lafs_get_block(dir, newhash+1, NULL, GFP_KERNEL,
- MKREF(dir_new));
- if (IS_ERR(doh->new))
- return PTR_ERR(doh->new);
buf = map_dblock(doh->new);
memcpy(buf, n1, blocksize);
unmap_dblock(doh->new, buf);
if (!db)
db = lafs_get_block(ino_from_sb(ino->i_sb), ino->i_ino, NULL,
GFP_KERNEL, REF);
- if (IS_ERR(db))
- return db;
+ if (!db)
+ return ERR_PTR(-ENOMEM);
LAFSI(ino)->dblock = db;
rcu_assign_pointer(db->my_inode, ino);