|
@@ -570,9 +570,14 @@ got:
|
|
ei->i_state_flags = 0;
|
|
ei->i_state_flags = 0;
|
|
ext3_set_inode_state(inode, EXT3_STATE_NEW);
|
|
ext3_set_inode_state(inode, EXT3_STATE_NEW);
|
|
|
|
|
|
- ei->i_extra_isize =
|
|
|
|
- (EXT3_INODE_SIZE(inode->i_sb) > EXT3_GOOD_OLD_INODE_SIZE) ?
|
|
|
|
- sizeof(struct ext3_inode) - EXT3_GOOD_OLD_INODE_SIZE : 0;
|
|
|
|
|
|
+ /* See comment in ext3_iget for explanation */
|
|
|
|
+ if (ino >= EXT3_FIRST_INO(sb) + 1 &&
|
|
|
|
+ EXT3_INODE_SIZE(sb) > EXT3_GOOD_OLD_INODE_SIZE) {
|
|
|
|
+ ei->i_extra_isize =
|
|
|
|
+ sizeof(struct ext3_inode) - EXT3_GOOD_OLD_INODE_SIZE;
|
|
|
|
+ } else {
|
|
|
|
+ ei->i_extra_isize = 0;
|
|
|
|
+ }
|
|
|
|
|
|
ret = inode;
|
|
ret = inode;
|
|
dquot_initialize(inode);
|
|
dquot_initialize(inode);
|