git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nfs: initialize the backing_dev_info when creating the server
[safe/jmp/linux-2.6]
/
fs
/
ext2
/
ialloc.c
diff --git
a/fs/ext2/ialloc.c
b/fs/ext2/ialloc.c
index
f597413
..
15387c9
100644
(file)
--- a/
fs/ext2/ialloc.c
+++ b/
fs/ext2/ialloc.c
@@
-121,8
+121,8
@@
void ext2_free_inode (struct inode * inode)
if (!is_bad_inode(inode)) {
/* Quota is already initialized in iput() */
ext2_xattr_delete_inode(inode);
if (!is_bad_inode(inode)) {
/* Quota is already initialized in iput() */
ext2_xattr_delete_inode(inode);
-
DQUOT_FREE_INODE
(inode);
-
DQUOT_DROP
(inode);
+
vfs_dq_free_inode
(inode);
+
vfs_dq_drop
(inode);
}
es = EXT2_SB(sb)->s_es;
}
es = EXT2_SB(sb)->s_es;
@@
-550,7
+550,7
@@
got:
sb->s_dirt = 1;
mark_buffer_dirty(bh2);
sb->s_dirt = 1;
mark_buffer_dirty(bh2);
- inode->i_uid = current
->fsuid
;
+ inode->i_uid = current
_fsuid()
;
if (test_opt (sb, GRPID))
inode->i_gid = dir->i_gid;
else if (dir->i_mode & S_ISGID) {
if (test_opt (sb, GRPID))
inode->i_gid = dir->i_gid;
else if (dir->i_mode & S_ISGID) {
@@
-558,19
+558,15
@@
got:
if (S_ISDIR(mode))
mode |= S_ISGID;
} else
if (S_ISDIR(mode))
mode |= S_ISGID;
} else
- inode->i_gid = current
->fsgid
;
+ inode->i_gid = current
_fsgid()
;
inode->i_mode = mode;
inode->i_ino = ino;
inode->i_blocks = 0;
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
memset(ei->i_data, 0, sizeof(ei->i_data));
inode->i_mode = mode;
inode->i_ino = ino;
inode->i_blocks = 0;
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
memset(ei->i_data, 0, sizeof(ei->i_data));
- ei->i_flags = EXT2_I(dir)->i_flags & ~EXT2_BTREE_FL;
- if (S_ISLNK(mode))
- ei->i_flags &= ~(EXT2_IMMUTABLE_FL|EXT2_APPEND_FL);
- /* dirsync is only applied to directories */
- if (!S_ISDIR(mode))
- ei->i_flags &= ~EXT2_DIRSYNC_FL;
+ ei->i_flags =
+ ext2_mask_flags(mode, EXT2_I(dir)->i_flags & EXT2_FL_INHERITED);
ei->i_faddr = 0;
ei->i_frag_no = 0;
ei->i_frag_size = 0;
ei->i_faddr = 0;
ei->i_frag_no = 0;
ei->i_frag_size = 0;
@@
-585,9
+581,12
@@
got:
spin_lock(&sbi->s_next_gen_lock);
inode->i_generation = sbi->s_next_generation++;
spin_unlock(&sbi->s_next_gen_lock);
spin_lock(&sbi->s_next_gen_lock);
inode->i_generation = sbi->s_next_generation++;
spin_unlock(&sbi->s_next_gen_lock);
- insert_inode_hash(inode);
+ if (insert_inode_locked(inode) < 0) {
+ err = -EINVAL;
+ goto fail_drop;
+ }
- if (
DQUOT_ALLOC_INODE
(inode)) {
+ if (
vfs_dq_alloc_inode
(inode)) {
err = -EDQUOT;
goto fail_drop;
}
err = -EDQUOT;
goto fail_drop;
}
@@
-606,12
+605,13
@@
got:
return inode;
fail_free_drop:
return inode;
fail_free_drop:
-
DQUOT_FREE_INODE
(inode);
+
vfs_dq_free_inode
(inode);
fail_drop:
fail_drop:
-
DQUOT_DROP
(inode);
+
vfs_dq_drop
(inode);
inode->i_flags |= S_NOQUOTA;
inode->i_nlink = 0;
inode->i_flags |= S_NOQUOTA;
inode->i_nlink = 0;
+ unlock_new_inode(inode);
iput(inode);
return ERR_PTR(err);
iput(inode);
return ERR_PTR(err);