summaryrefslogtreecommitdiff
path: root/fs/ext2/ialloc.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-10-04 03:48:49 +0400
committerJeff Garzik <jgarzik@pobox.com>2005-10-04 03:48:49 +0400
commit0fbbbf2bde4da5cb01a949c3d7b21c0627f520a8 (patch)
treef081ef10f3067b28a1ee316a8e7292eeda143419 /fs/ext2/ialloc.c
parent54f00389563c80fa1de250a21256313ba01ca07d (diff)
parent2b235826098bb653982894dfc3f70fd029f6c2e4 (diff)
downloadlinux-0fbbbf2bde4da5cb01a949c3d7b21c0627f520a8.tar.xz
Merge libata upstream (which includes C/H/S support) include irq-pio branch.
Merge branch 'upstream'
Diffstat (limited to 'fs/ext2/ialloc.c')
-rw-r--r--fs/ext2/ialloc.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c
index c8d07030c897..e2d6208633a7 100644
--- a/fs/ext2/ialloc.c
+++ b/fs/ext2/ialloc.c
@@ -605,27 +605,28 @@ got:
insert_inode_hash(inode);
if (DQUOT_ALLOC_INODE(inode)) {
- DQUOT_DROP(inode);
err = -ENOSPC;
- goto fail2;
+ goto fail_drop;
}
+
err = ext2_init_acl(inode, dir);
- if (err) {
- DQUOT_FREE_INODE(inode);
- DQUOT_DROP(inode);
- goto fail2;
- }
+ if (err)
+ goto fail_free_drop;
+
err = ext2_init_security(inode,dir);
- if (err) {
- DQUOT_FREE_INODE(inode);
- goto fail2;
- }
+ if (err)
+ goto fail_free_drop;
+
mark_inode_dirty(inode);
ext2_debug("allocating inode %lu\n", inode->i_ino);
ext2_preread_inode(inode);
return inode;
-fail2:
+fail_free_drop:
+ DQUOT_FREE_INODE(inode);
+
+fail_drop:
+ DQUOT_DROP(inode);
inode->i_flags |= S_NOQUOTA;
inode->i_nlink = 0;
iput(inode);