Loading fs/ocfs2/inode.c +14 −7 Original line number Original line Diff line number Diff line Loading @@ -969,7 +969,7 @@ static void ocfs2_cleanup_delete_inode(struct inode *inode, truncate_inode_pages(&inode->i_data, 0); truncate_inode_pages(&inode->i_data, 0); } } void ocfs2_delete_inode(struct inode *inode) static void ocfs2_delete_inode(struct inode *inode) { { int wipe, status; int wipe, status; sigset_t oldset; sigset_t oldset; Loading Loading @@ -1075,20 +1075,17 @@ void ocfs2_delete_inode(struct inode *inode) bail_unblock: bail_unblock: ocfs2_unblock_signals(&oldset); ocfs2_unblock_signals(&oldset); bail: bail: clear_inode(inode); mlog_exit_void(); mlog_exit_void(); } } void ocfs2_clear_inode(struct inode *inode) static void ocfs2_clear_inode(struct inode *inode) { { int status; int status; struct ocfs2_inode_info *oi = OCFS2_I(inode); struct ocfs2_inode_info *oi = OCFS2_I(inode); mlog_entry_void(); mlog_entry_void(); if (!inode) end_writeback(inode); goto bail; mlog(0, "Clearing inode: %llu, nlink = %u\n", mlog(0, "Clearing inode: %llu, nlink = %u\n", (unsigned long long)OCFS2_I(inode)->ip_blkno, inode->i_nlink); (unsigned long long)OCFS2_I(inode)->ip_blkno, inode->i_nlink); Loading Loading @@ -1180,10 +1177,20 @@ void ocfs2_clear_inode(struct inode *inode) jbd2_journal_release_jbd_inode(OCFS2_SB(inode->i_sb)->journal->j_journal, jbd2_journal_release_jbd_inode(OCFS2_SB(inode->i_sb)->journal->j_journal, &oi->ip_jinode); &oi->ip_jinode); bail: mlog_exit_void(); mlog_exit_void(); } } void ocfs2_evict_inode(struct inode *inode) { if (!inode->i_nlink || (OCFS2_I(inode)->ip_flags & OCFS2_INODE_MAYBE_ORPHANED)) { ocfs2_delete_inode(inode); } else { truncate_inode_pages(&inode->i_data, 0); } ocfs2_clear_inode(inode); } /* Called under inode_lock, with no more references on the /* Called under inode_lock, with no more references on the * struct inode, so it's safe here to check the flags field * struct inode, so it's safe here to check the flags field * and to manipulate i_nlink without any other locks. */ * and to manipulate i_nlink without any other locks. */ Loading fs/ocfs2/inode.h +1 −2 Original line number Original line Diff line number Diff line Loading @@ -123,8 +123,7 @@ static inline struct ocfs2_caching_info *INODE_CACHE(struct inode *inode) return &OCFS2_I(inode)->ip_metadata_cache; return &OCFS2_I(inode)->ip_metadata_cache; } } void ocfs2_clear_inode(struct inode *inode); void ocfs2_evict_inode(struct inode *inode); void ocfs2_delete_inode(struct inode *inode); void ocfs2_drop_inode(struct inode *inode); void ocfs2_drop_inode(struct inode *inode); /* Flags for ocfs2_iget() */ /* Flags for ocfs2_iget() */ Loading fs/ocfs2/super.c +1 −2 Original line number Original line Diff line number Diff line Loading @@ -145,8 +145,7 @@ static const struct super_operations ocfs2_sops = { .alloc_inode = ocfs2_alloc_inode, .alloc_inode = ocfs2_alloc_inode, .destroy_inode = ocfs2_destroy_inode, .destroy_inode = ocfs2_destroy_inode, .drop_inode = ocfs2_drop_inode, .drop_inode = ocfs2_drop_inode, .clear_inode = ocfs2_clear_inode, .evict_inode = ocfs2_evict_inode, .delete_inode = ocfs2_delete_inode, .sync_fs = ocfs2_sync_fs, .sync_fs = ocfs2_sync_fs, .put_super = ocfs2_put_super, .put_super = ocfs2_put_super, .remount_fs = ocfs2_remount, .remount_fs = ocfs2_remount, Loading Loading
fs/ocfs2/inode.c +14 −7 Original line number Original line Diff line number Diff line Loading @@ -969,7 +969,7 @@ static void ocfs2_cleanup_delete_inode(struct inode *inode, truncate_inode_pages(&inode->i_data, 0); truncate_inode_pages(&inode->i_data, 0); } } void ocfs2_delete_inode(struct inode *inode) static void ocfs2_delete_inode(struct inode *inode) { { int wipe, status; int wipe, status; sigset_t oldset; sigset_t oldset; Loading Loading @@ -1075,20 +1075,17 @@ void ocfs2_delete_inode(struct inode *inode) bail_unblock: bail_unblock: ocfs2_unblock_signals(&oldset); ocfs2_unblock_signals(&oldset); bail: bail: clear_inode(inode); mlog_exit_void(); mlog_exit_void(); } } void ocfs2_clear_inode(struct inode *inode) static void ocfs2_clear_inode(struct inode *inode) { { int status; int status; struct ocfs2_inode_info *oi = OCFS2_I(inode); struct ocfs2_inode_info *oi = OCFS2_I(inode); mlog_entry_void(); mlog_entry_void(); if (!inode) end_writeback(inode); goto bail; mlog(0, "Clearing inode: %llu, nlink = %u\n", mlog(0, "Clearing inode: %llu, nlink = %u\n", (unsigned long long)OCFS2_I(inode)->ip_blkno, inode->i_nlink); (unsigned long long)OCFS2_I(inode)->ip_blkno, inode->i_nlink); Loading Loading @@ -1180,10 +1177,20 @@ void ocfs2_clear_inode(struct inode *inode) jbd2_journal_release_jbd_inode(OCFS2_SB(inode->i_sb)->journal->j_journal, jbd2_journal_release_jbd_inode(OCFS2_SB(inode->i_sb)->journal->j_journal, &oi->ip_jinode); &oi->ip_jinode); bail: mlog_exit_void(); mlog_exit_void(); } } void ocfs2_evict_inode(struct inode *inode) { if (!inode->i_nlink || (OCFS2_I(inode)->ip_flags & OCFS2_INODE_MAYBE_ORPHANED)) { ocfs2_delete_inode(inode); } else { truncate_inode_pages(&inode->i_data, 0); } ocfs2_clear_inode(inode); } /* Called under inode_lock, with no more references on the /* Called under inode_lock, with no more references on the * struct inode, so it's safe here to check the flags field * struct inode, so it's safe here to check the flags field * and to manipulate i_nlink without any other locks. */ * and to manipulate i_nlink without any other locks. */ Loading
fs/ocfs2/inode.h +1 −2 Original line number Original line Diff line number Diff line Loading @@ -123,8 +123,7 @@ static inline struct ocfs2_caching_info *INODE_CACHE(struct inode *inode) return &OCFS2_I(inode)->ip_metadata_cache; return &OCFS2_I(inode)->ip_metadata_cache; } } void ocfs2_clear_inode(struct inode *inode); void ocfs2_evict_inode(struct inode *inode); void ocfs2_delete_inode(struct inode *inode); void ocfs2_drop_inode(struct inode *inode); void ocfs2_drop_inode(struct inode *inode); /* Flags for ocfs2_iget() */ /* Flags for ocfs2_iget() */ Loading
fs/ocfs2/super.c +1 −2 Original line number Original line Diff line number Diff line Loading @@ -145,8 +145,7 @@ static const struct super_operations ocfs2_sops = { .alloc_inode = ocfs2_alloc_inode, .alloc_inode = ocfs2_alloc_inode, .destroy_inode = ocfs2_destroy_inode, .destroy_inode = ocfs2_destroy_inode, .drop_inode = ocfs2_drop_inode, .drop_inode = ocfs2_drop_inode, .clear_inode = ocfs2_clear_inode, .evict_inode = ocfs2_evict_inode, .delete_inode = ocfs2_delete_inode, .sync_fs = ocfs2_sync_fs, .sync_fs = ocfs2_sync_fs, .put_super = ocfs2_put_super, .put_super = ocfs2_put_super, .remount_fs = ocfs2_remount, .remount_fs = ocfs2_remount, Loading