X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=fs%2Finode.c;h=d06d6d268de9a12c5fbe9d66bd618c293729e8e9;hb=8f63aaa8b9239475fc580d4450f1141496655305;hp=643ac43e5a5c7d6f43fe938fd4c0df6c91e2e0ce;hpb=831576fe40f4175e0767623cffa4aeb28157943a;p=android-x86%2Fkernel.git diff --git a/fs/inode.c b/fs/inode.c index 643ac43e5a5c..d06d6d268de9 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -294,7 +294,7 @@ void clear_inode(struct inode *inode) BUG_ON(!(inode->i_state & I_FREEING)); BUG_ON(inode->i_state & I_CLEAR); inode_sync_wait(inode); - DQUOT_DROP(inode); + vfs_dq_drop(inode); if (inode->i_sb->s_op->clear_inode) inode->i_sb->s_op->clear_inode(inode); if (S_ISBLK(inode->i_mode) && inode->i_bdev) @@ -366,6 +366,8 @@ static int invalidate_list(struct list_head *head, struct list_head *dispose) if (tmp == head) break; inode = list_entry(tmp, struct inode, i_sb_list); + if (inode->i_state & I_NEW) + continue; invalidate_inode_buffers(inode); if (!atomic_read(&inode->i_count)) { list_move(&inode->i_list, dispose); @@ -1168,7 +1170,7 @@ void generic_delete_inode(struct inode *inode) if (op->delete_inode) { void (*delete)(struct inode *) = op->delete_inode; if (!is_bad_inode(inode)) - DQUOT_INIT(inode); + vfs_dq_init(inode); /* Filesystems implementing their own * s_op->delete_inode are required to call * truncate_inode_pages and clear_inode()