aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ocfs2/inode.c')
-rw-r--r--fs/ocfs2/inode.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c
index 50dbc486ef71..288512c9dbc2 100644
--- a/fs/ocfs2/inode.c
+++ b/fs/ocfs2/inode.c
@@ -28,6 +28,7 @@
28#include <linux/slab.h> 28#include <linux/slab.h>
29#include <linux/highmem.h> 29#include <linux/highmem.h>
30#include <linux/pagemap.h> 30#include <linux/pagemap.h>
31#include <linux/quotaops.h>
31 32
32#include <asm/byteorder.h> 33#include <asm/byteorder.h>
33 34
@@ -603,7 +604,8 @@ static int ocfs2_remove_inode(struct inode *inode,
603 goto bail; 604 goto bail;
604 } 605 }
605 606
606 handle = ocfs2_start_trans(osb, OCFS2_DELETE_INODE_CREDITS); 607 handle = ocfs2_start_trans(osb, OCFS2_DELETE_INODE_CREDITS +
608 ocfs2_quota_trans_credits(inode->i_sb));
607 if (IS_ERR(handle)) { 609 if (IS_ERR(handle)) {
608 status = PTR_ERR(handle); 610 status = PTR_ERR(handle);
609 mlog_errno(status); 611 mlog_errno(status);
@@ -635,6 +637,7 @@ static int ocfs2_remove_inode(struct inode *inode,
635 } 637 }
636 638
637 ocfs2_remove_from_cache(inode, di_bh); 639 ocfs2_remove_from_cache(inode, di_bh);
640 vfs_dq_free_inode(inode);
638 641
639 status = ocfs2_free_dinode(handle, inode_alloc_inode, 642 status = ocfs2_free_dinode(handle, inode_alloc_inode,
640 inode_alloc_bh, di); 643 inode_alloc_bh, di);
@@ -917,7 +920,10 @@ void ocfs2_delete_inode(struct inode *inode)
917 920
918 mlog_entry("(inode->i_ino = %lu)\n", inode->i_ino); 921 mlog_entry("(inode->i_ino = %lu)\n", inode->i_ino);
919 922
920 if (is_bad_inode(inode)) { 923 /* When we fail in read_inode() we mark inode as bad. The second test
924 * catches the case when inode allocation fails before allocating
925 * a block for inode. */
926 if (is_bad_inode(inode) || !OCFS2_I(inode)->ip_blkno) {
921 mlog(0, "Skipping delete of bad inode\n"); 927 mlog(0, "Skipping delete of bad inode\n");
922 goto bail; 928 goto bail;
923 } 929 }