gfs2: Add extra error check in alloc_dinode
We have reserved the number of blocks we want to allocate, so the actual allocation isn't expected to fail. Nevertheless, make the code behave correctly even when things go wrong. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
b7b275e60b
commit
35c23fba4e
|
@ -403,12 +403,15 @@ static int alloc_dinode(struct gfs2_inode *ip, u32 flags, unsigned *dblocks)
|
|||
goto out_ipreserv;
|
||||
|
||||
error = gfs2_alloc_blocks(ip, &ip->i_no_addr, dblocks, 1, &ip->i_generation);
|
||||
if (error)
|
||||
goto out_trans_end;
|
||||
|
||||
ip->i_no_formal_ino = ip->i_generation;
|
||||
ip->i_inode.i_ino = ip->i_no_addr;
|
||||
ip->i_goal = ip->i_no_addr;
|
||||
|
||||
out_trans_end:
|
||||
gfs2_trans_end(sdp);
|
||||
|
||||
out_ipreserv:
|
||||
gfs2_inplace_release(ip);
|
||||
out_quota:
|
||||
|
|
Loading…
Reference in New Issue